diff options
-rw-r--r-- | lib/Plugins/Mailx.cpp | 2 | ||||
-rw-r--r-- | lib/Utils/spawn.cpp | 2 |
2 files changed, 3 insertions, 1 deletions
diff --git a/lib/Plugins/Mailx.cpp b/lib/Plugins/Mailx.cpp index f9dd2cca..fc869546 100644 --- a/lib/Plugins/Mailx.cpp +++ b/lib/Plugins/Mailx.cpp @@ -38,7 +38,7 @@ static void exec_and_feed_input(uid_t uid, const char* pText, char **pArgs) int pipein[2]; pid_t child = fork_execv_on_steroids( - EXECFLG_INPUT | EXECFLG_QUIET | EXECFLG_SETGUID, + EXECFLG_INPUT | EXECFLG_QUIET | EXECFLG_SETGUID, pArgs, pipein, /*unsetenv_vec:*/ NULL, diff --git a/lib/Utils/spawn.cpp b/lib/Utils/spawn.cpp index 54d08a4a..43bc9540 100644 --- a/lib/Utils/spawn.cpp +++ b/lib/Utils/spawn.cpp @@ -67,11 +67,13 @@ pid_t fork_execv_on_steroids(int flags, /* Play with stdio descriptors */ if (flags & EXECFLG_INPUT) { xmove_fd(pipe_to_child[0], STDIN_FILENO); + close(pipe_to_child[1]); } else if (flags & EXECFLG_INPUT_NUL) { xmove_fd(xopen("/dev/null", O_RDWR), STDIN_FILENO); } if (flags & EXECFLG_OUTPUT) { xmove_fd(pipe_fm_child[1], STDOUT_FILENO); + close(pipe_to_child[0]); } else if (flags & EXECFLG_OUTPUT_NUL) { xmove_fd(xopen("/dev/null", O_RDWR), STDOUT_FILENO); } |