Kill the child process group, rather than just the immediate child;
this is needed now that su no longer starts a controlling terminal when not running an interactive shell (closes: Debian#713979)
This commit is contained in:
4
src/su.c
4
src/su.c
@@ -181,7 +181,7 @@ static bool iswheel (const char *username)
|
||||
static RETSIGTYPE kill_child (int unused(s))
|
||||
{
|
||||
if (0 != pid_child) {
|
||||
(void) kill (pid_child, SIGKILL);
|
||||
(void) kill (-pid_child, SIGKILL);
|
||||
(void) fputs (_(" ...killed.\n"), stderr);
|
||||
} else {
|
||||
(void) fputs (_(" ...waiting for child to terminate.\n"),
|
||||
@@ -370,7 +370,7 @@ static void prepare_pam_close_session (void)
|
||||
(void) fputs ("\n", stderr);
|
||||
(void) fputs (_("Session terminated, terminating shell..."),
|
||||
stderr);
|
||||
(void) kill (pid_child, caught);
|
||||
(void) kill (-pid_child, caught);
|
||||
}
|
||||
|
||||
ret = pam_close_session (pamh, 0);
|
||||
|
||||
Reference in New Issue
Block a user