If the command terminated due to a signal, sudo will send that same

signal to itself so the parent shell knows the command died from
a signal.  However, we don't want sudo itself to dump core.
This commit is contained in:
Todd C. Miller
2017-04-27 10:34:30 -06:00
parent 2d13bf3562
commit 91aec9730e

View File

@@ -316,9 +316,17 @@ main(int argc, char *argv[], char *envp[])
sudo_fatalx(U_("unexpected sudo mode 0x%x"), sudo_mode);
}
/*
* If the command was terminated by a signal, sudo needs to terminated
* the same way. Otherwise, the shell may ignore a keyboard-generated
* signal. However, we want to avoid having sudo dump core itself.
*/
if (WIFSIGNALED(status)) {
sigaction_t sa;
if (WCOREDUMP(status))
disable_coredumps();
memset(&sa, 0, sizeof(sa));
sigemptyset(&sa.sa_mask);
sa.sa_handler = SIG_DFL;