summaryrefslogtreecommitdiff
path: root/sys/src/cmd/exportfs
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2014-03-11 07:03:15 +0100
committercinap_lenrek <cinap_lenrek@felloff.net>2014-03-11 07:03:15 +0100
commiteed487167489ee16dd16effe9ebff9a5086ffc70 (patch)
tree4c2aeb16d64d6d9f0f3617d79290e83bfb1dee40 /sys/src/cmd/exportfs
parent2c0490a26ed0565d5e69c88e64c8b185ecab0947 (diff)
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.
Diffstat (limited to 'sys/src/cmd/exportfs')
-rw-r--r--sys/src/cmd/exportfs/exportfs.c5
1 files changed, 3 insertions, 2 deletions
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