From 9ad4f2d06711e7c17c75393c2726be55ce1bcf24 Mon Sep 17 00:00:00 2001 From: "Matthew N. Dodd" Date: Sun, 22 Jun 2003 05:57:34 +0000 Subject: [PATCH] - Set close on exec flag for device file descriptors. - Reset signal handlers in event_cmd_exec_act(). PR: i386/35182 Submitted by: Daniel O'Connor --- usr.sbin/apmd/apmd.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/usr.sbin/apmd/apmd.c b/usr.sbin/apmd/apmd.c index 88e755c87009..79da66409862 100644 --- a/usr.sbin/apmd/apmd.c +++ b/usr.sbin/apmd/apmd.c @@ -120,6 +120,9 @@ event_cmd_exec_act(void *this) goto out; case 0: /* child process */ + signal(SIGHUP, SIG_DFL); + signal(SIGCHLD, SIG_DFL); + signal(SIGTERM, SIG_DFL); execl(_PATH_BSHELL, "sh", "-c", p->line, (char *)NULL); _exit(127); default: @@ -691,10 +694,18 @@ main(int ac, char* av[]) (void) err(1, "cannot open device file `%s'", APM_NORM_DEVICEFILE); } + if (fcntl(apmnorm_fd, F_SETFD, 1) == -1) { + (void) err(1, "cannot set close-on-exec flag for device file '%s'", APM_NORM_DEVICEFILE); + } + if ((apmctl_fd = open(APM_CTL_DEVICEFILE, O_RDWR)) == -1) { (void) err(1, "cannot open device file `%s'", APM_CTL_DEVICEFILE); } + if (fcntl(apmctl_fd, F_SETFD, 1) == -1) { + (void) err(1, "cannot set close-on-exec flag for device file '%s'", APM_CTL_DEVICEFILE); + } + restart(); write_pid(); event_loop();