From eed487167489ee16dd16effe9ebff9a5086ffc70 Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Tue, 11 Mar 2014 07:03:15 +0100 Subject: exportfs: avoid closing netfd in filter() netfd is initially zero (stdin), when filter() closes fd0, fd0 is free to be reused. this causes problems with openmount() that assumes sfd being >2. instead, we dup the our pipe end over netfd, and close the pipe. --- sys/src/cmd/exportfs/exportfs.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'sys/src/cmd/exportfs') diff --git a/sys/src/cmd/exportfs/exportfs.c b/sys/src/cmd/exportfs/exportfs.c index 522e06025..4d436dad9 100644 --- a/sys/src/cmd/exportfs/exportfs.c +++ b/sys/src/cmd/exportfs/exportfs.c @@ -927,10 +927,11 @@ filter(int fd, char *cmd) exec(file, argv); fatal("filter: exec; %r"); default: - close(fd); + dup(p[1], fd); close(p[0]); + close(p[1]); } - return p[1]; + return fd; } static void -- cgit v1.2.3