chiark / gitweb /
run_program: close pipe fd's which are connected to child process
[elogind.git] / udev_utils_run.c
index 76a704c52cb19b93db15fe517f2b3171043708b8..2771861cf55ad4bd9e4a72bac404f7909c89c9ed 100644 (file)
@@ -151,10 +151,14 @@ int run_program(const char *command, const char *subsystem,
                        close(devnull);
                } else
                        err("open /dev/null failed: %s", strerror(errno));
-               if (outpipe[WRITE_END] > 0)
+               if (outpipe[WRITE_END] > 0) {
                        dup2(outpipe[WRITE_END], STDOUT_FILENO);
-               if (errpipe[WRITE_END] > 0)
+                       close(outpipe[WRITE_END]);
+               }
+               if (errpipe[WRITE_END] > 0) {
                        dup2(errpipe[WRITE_END], STDERR_FILENO);
+                       close(errpipe[WRITE_END]);
+               }
                execv(argv[0], argv);
 
                /* we should never reach this */