From: Karel Zak Date: Wed, 6 Mar 2019 11:02:30 +0000 (+0100) Subject: su: be sensitive to another SIGCHLD ssi_codes X-Git-Tag: v2.33.2~14 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3209ed50e388e075963fd544a707cdde5474da6f;p=thirdparty%2Futil-linux.git su: be sensitive to another SIGCHLD ssi_codes See the same issue for script: 27afe5016842c22d256ea9f88b598d637ca0df84 Signed-off-by: Karel Zak --- diff --git a/login-utils/su-common.c b/login-utils/su-common.c index e0604e246d..459e5c0aea 100644 --- a/login-utils/su-common.c +++ b/login-utils/su-common.c @@ -438,7 +438,10 @@ static int pty_handle_signal(struct su_context *su, int fd) /* The child terminated or stopped. Note that we ignore SIGCONT * here, because stop/cont semantic is handled by wait_for_child() */ - if (info.ssi_code == CLD_EXITED || info.ssi_status == SIGSTOP) + if (info.ssi_code == CLD_EXITED + || info.ssi_code == CLD_KILLED + || info.ssi_code == CLD_DUMPED + || info.ssi_status == SIGSTOP) wait_for_child(su); /* The child is dead, force poll() timeout. */ if (su->child == (pid_t) -1)