From 6e3e3c3416864eca74cb885f64c453eb531eed63 Mon Sep 17 00:00:00 2001 From: "harald@redhat.com" Date: Wed, 6 Oct 2004 00:54:08 -0700 Subject: [PATCH] PATCH udev close on exec selinux wants a clean fd set, so better close all open fds --- dev_d.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'dev_d.c') diff --git a/dev_d.c b/dev_d.c index e6081b3993..c091f11c28 100644 --- a/dev_d.c +++ b/dev_d.c @@ -23,9 +23,13 @@ #include #include #include +#include #include +#include + #include "udev.h" #include "udev_lib.h" +#include "udevdb.h" #include "logging.h" #define DEVD_DIR "/etc/dev.d/" @@ -34,6 +38,7 @@ static int run_program(char *name) { pid_t pid; + int fd; dbg("running %s", name); @@ -41,6 +46,14 @@ static int run_program(char *name) switch (pid) { case 0: /* child */ + udevdb_exit(); /* close udevdb */ + fd = open("/dev/null", O_RDWR); + if ( fd >= 0) { + dup2(fd, STDOUT_FILENO); + dup2(fd, STDIN_FILENO); + dup2(fd, STDERR_FILENO); + } + close(fd); execv(name, main_argv); dbg("exec of child failed"); exit(1); -- cgit v1.2.3-54-g00ecf