From: Florian Forster Date: Wed, 9 Apr 2008 16:45:38 +0000 (+0200) Subject: Merge branch 'collectd-4.3' X-Git-Tag: collectd-4.4.0~41 X-Git-Url: https://git.octo.it/?a=commitdiff_plain;h=b58af48a482b30999bd0b71c470c5dbab8fd5abd;hp=2fe27dcde5e7839375ab10e75293be531f50838e;p=collectd.git Merge branch 'collectd-4.3' Conflicts: src/exec.c --- diff --git a/src/exec.c b/src/exec.c index 70c1c184..07c35c9b 100644 --- a/src/exec.c +++ b/src/exec.c @@ -429,9 +429,19 @@ static int fork_child (program_list_t *pl, int *fd_in, int *fd_out, int *fd_err) } else if (pid == 0) { - close (fd_pipe_in[1]); - close (fd_pipe_out[0]); - close (fd_pipe_err[0]); + int fd_num; + int fd; + + /* Close all file descriptors but the pipe end we need. */ + fd_num = getdtablesize (); + for (fd = 0; fd < fd_num; fd++) + { + if ((fd == fd_pipe_in[0]) + || (fd == fd_pipe_out[1]) + || (fd == fd_pipe_err[1])) + continue; + close (fd); + } /* Connect the `in' pipe to STDIN */ if (fd_pipe_in[0] != STDIN_FILENO)