]> granicus.if.org Git - shadow/commitdiff
Reset caught variable when signal is handled by su.
authorNicolas François <nicolas.francois@centraliens.net>
Tue, 13 Aug 2013 17:42:50 +0000 (19:42 +0200)
committerNicolas François <nicolas.francois@centraliens.net>
Tue, 13 Aug 2013 17:42:50 +0000 (19:42 +0200)
* src/su.c: When a SIGTSTP is caught, reset caught to 0. There is
no need to kill the child in such case after su is resumed. This
remove the "Session terminated, terminating shell...
...terminated." messages in such case.

ChangeLog
src/su.c

index c966957d6a8b6d741a73b7310b424f7eb725bcc2..4d40562a5959bedc1e18fb983454f74421defef1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2013-08-13  Nicolas François  <nicolas.francois@centraliens.net>
+
+       * src/su.c: When a SIGTSTP is caught, reset caught to 0. There is
+       no need to kill the child in such case after su is resumed. This
+       remove the "Session terminated, terminating shell...
+       ...terminated." messages in such case.
+
 2013-08-13  Nicolas François  <nicolas.francois@centraliens.net>
 
        * man/newgidmap.1.xml: Document the checks performed before
index 98ea6de3b8f9fbbe36d53837e8c5a0e34c90e261..43f7dc4bad0dfe109e62fff0cba738dc34eea60c 100644 (file)
--- a/src/su.c
+++ b/src/su.c
@@ -347,6 +347,7 @@ static void prepare_pam_close_session (void)
                        if (   ((pid_t)-1 == pid)
                            && (EINTR == errno)
                            && (SIGTSTP == caught)) {
+                               caught = 0;
                                /* Except for SIGTSTP, which request to
                                 * stop the child.
                                 * We will SIGSTOP ourself on the next