From 2fa86d0c611b69e175c3b07116e9b67b85fe20ef Mon Sep 17 00:00:00 2001 From: Jeremie Corbier Date: Wed, 28 Jan 2009 14:42:49 +0100 Subject: 101_close-fds.diff from the Debian package version 20080615-8: "wide-dhcpv6 binaries should close inherited fds." --- dhcp6c.c | 7 ++++++- dhcp6relay.c | 6 ++++++ dhcp6s.c | 5 +++++ 3 files changed, 17 insertions(+), 1 deletion(-) 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 */ -- cgit v1.2.3