diff options
author | Jeremie Corbier <jeremie.corbier@resel.enst-bretagne.fr> | 2009-01-28 14:42:49 +0100 |
---|---|---|
committer | Bjørn Mork <bjorn@mork.no> | 2010-08-06 15:37:37 +0200 |
commit | 2fa86d0c611b69e175c3b07116e9b67b85fe20ef (patch) | |
tree | 7f94a7d6f67d4a9d07a987527814d2fae7fd8ffb | |
parent | bc441283e612fac6009124b6113b0bf62e270f05 (diff) |
101_close-fds.diff from the Debian package version 20080615-8:
"wide-dhcpv6 binaries should close inherited fds."
-rw-r--r-- | dhcp6c.c | 7 | ||||
-rw-r--r-- | dhcp6relay.c | 6 | ||||
-rw-r--r-- | dhcp6s.c | 5 |
3 files changed, 17 insertions, 1 deletions
@@ -159,6 +159,7 @@ main(argc, argv) char *progname; FILE *pidfp; struct dhcp6_if *ifp; + int fd; #ifndef HAVE_ARC4RANDOM srandom(time(NULL) & getpid()); @@ -205,8 +206,12 @@ main(argc, argv) exit(0); } - if (foreground == 0) + if (foreground == 0) { + for (fd = 3; fd < 1024; fd++) + close(fd); + openlog(progname, LOG_NDELAY|LOG_PID, LOG_DAEMON); + } setloglevel(debug); diff --git a/dhcp6relay.c b/dhcp6relay.c index fb84ce3..eb0bce9 100644 --- a/dhcp6relay.c +++ b/dhcp6relay.c @@ -207,8 +207,14 @@ main(argc, argv) } if (foreground == 0) { + int fd; + if (daemon(0, 0) < 0) err(1, "daemon"); + + for (fd = 3; fd < 1024; fd++) + close(fd); + openlog(progname, LOG_NDELAY|LOG_PID, LOG_DAEMON); } setloglevel(debug); @@ -316,8 +316,13 @@ main(argc, argv) } if (foreground == 0) { + int fd; + if (daemon(0, 0) < 0) err(1, "daemon"); + + for (fd = 3; fd < 1024; fd++) + close(fd); } /* dump current PID */ |