From 91aec9730e46e1a185d0cedd5552f47c985864cf Mon Sep 17 00:00:00 2001 From: "Todd C. Miller" Date: Thu, 27 Apr 2017 10:34:30 -0600 Subject: [PATCH] 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. --- src/sudo.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/sudo.c b/src/sudo.c index 1dd0409cb..0af1433f8 100644 --- a/src/sudo.c +++ b/src/sudo.c @@ -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; -- 2.50.1