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 <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2020-12-17 12:55:22 +01:00
parent b0e7cb4c3f
commit cd48f07117

View File

@ -46,7 +46,8 @@ void FAST_FUNC launch_helper(const char **argv)
+ (1 << SIGALRM) + (1 << SIGALRM)
, signal_handler); , signal_handler);
G.helper_pid = pid = xvfork(); fflush_all();
pid = xvfork();
if (pid == 0) { if (pid == 0) {
// child // child
close(child_in.wr); 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 // NB: SIGCHLD & SIGALRM revert to SIG_DFL on exec
BB_EXECVP_or_die((char**)argv); BB_EXECVP_or_die((char**)argv);
} }
G.helper_pid = pid;
close(child_out.wr); close(child_out.wr);
close(child_in.rd); close(child_in.rd);
xmove_fd(child_out.rd, STDIN_FILENO); xmove_fd(child_out.rd, STDIN_FILENO);