summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rw-r--r--utils/mountd/mountd.c10
2 files changed, 10 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index ddee2eb..55e2a30 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,7 @@
2001-10-08 Chip Salzenberg <chip@pobox.com>
- * utils/Makefile.in: Remove Makefile in target 'distclean'.
+ * utils/mountd/mountd.c (main): When daemonizing, close all fds > 2.
+ * utils/Makefile.in: Remove old Makefile in target 'distclean'.
* utils/mountd/mountd.man: Update paths to /var/lib.
* debian/*: Version 0.3.3-1, with Debian-specific fixes.
diff --git a/utils/mountd/mountd.c b/utils/mountd/mountd.c
index b577971..e93f0ba 100644
--- a/utils/mountd/mountd.c
+++ b/utils/mountd/mountd.c
@@ -512,11 +512,17 @@ main(int argc, char **argv)
/* Now we remove ourselves from the foreground.
Redirect stdin/stdout/stderr first. */
{
- int fd = open("/dev/null", O_RDWR);
+ int fd, fdmax;
+
+ fd = open("/dev/null", O_RDWR);
(void) dup2(fd, 0);
(void) dup2(fd, 1);
(void) dup2(fd, 2);
- if (fd > 2) (void) close(fd);
+
+ fdmax = sysconf (_SC_OPEN_MAX);
+ for (fd = 3; fd < fdmax; fd++) {
+ close (fd);
+ }
}
setsid();
xlog_background();