summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremie Corbier <jeremie.corbier@resel.enst-bretagne.fr>2009-01-28 14:42:49 +0100
committerBjørn Mork <bjorn@mork.no>2010-08-06 15:11:47 +0200
commit7d60f8ac19b8c8af8bf0a93a1192f4f167b3869c (patch)
tree7f94a7d6f67d4a9d07a987527814d2fae7fd8ffb
parent134950af727d5f718169eff674a6e1f9d79e1982 (diff)
101_close-fds.diff from the Debian package version 20080615-8:
"wide-dhcpv6 binaries should close inherited fds."
-rw-r--r--dhcp6c.c7
-rw-r--r--dhcp6relay.c6
-rw-r--r--dhcp6s.c5
3 files changed, 17 insertions, 1 deletions
diff --git a/dhcp6c.c b/dhcp6c.c
index 1caaaa5..b5f5ed7 100644
--- a/dhcp6c.c
+++ b/dhcp6c.c
@@ -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);
diff --git a/dhcp6s.c b/dhcp6s.c
index 544afff..494e571 100644
--- a/dhcp6s.c
+++ b/dhcp6s.c
@@ -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 */