From cd48f071173c2b24ae49f2b6eb35a76734f2d86b Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Thu, 17 Dec 2020 12:55:22 +0100 Subject: mail: launch_helper(): flush stdio before vfork, set G.helper_pid only in parent function old new delta launch_helper 188 193 +5 Signed-off-by: Denys Vlasenko --- mailutils/mail.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mailutils/mail.c b/mailutils/mail.c index 7e9efdbfa..61e5053bc 100644 --- a/mailutils/mail.c +++ b/mailutils/mail.c @@ -46,7 +46,8 @@ void FAST_FUNC launch_helper(const char **argv) + (1 << SIGALRM) , signal_handler); - G.helper_pid = pid = xvfork(); + fflush_all(); + pid = xvfork(); if (pid == 0) { // child close(child_in.wr); @@ -59,6 +60,7 @@ void FAST_FUNC launch_helper(const char **argv) // NB: SIGCHLD & SIGALRM revert to SIG_DFL on exec BB_EXECVP_or_die((char**)argv); } + G.helper_pid = pid; close(child_out.wr); close(child_in.rd); xmove_fd(child_out.rd, STDIN_FILENO); -- cgit v1.2.3