>
> Thanks Bruce. It sounds like we'll have to live with this problem for now?
> 
For the lack of better ideas, I am just reposting the patch I sent to
Bruce about one year ago. I have been happily using it on all my systems
since then.

Index: su.c
===================================================================
RCS file: /usr/ncvs/src/usr.bin/su/su.c,v
retrieving revision 1.50
diff -u -r1.50 su.c
--- su.c        28 May 2002 06:47:32 -0000      1.50
+++ su.c        28 May 2002 08:43:04 -0000
@@ -132,6 +132,8 @@
        char            *username, *cleanenv, *class, shellbuf[MAXPATHLEN];
        const char      *p, *user, *shell, *mytty, **nargv;
 
+       struct sigaction sa, sa_int, sa_quit, sa_tstp;
+
        shell = class = cleanenv = NULL;
        asme = asthem = fastlogin = statusp = 0;
        user = "root";
@@ -314,6 +316,12 @@
         * We must fork() before setuid() because we need to call
         * pam_setcred(pamh, PAM_DELETE_CRED) as root.
         */
+       sa.sa_flags = SA_RESTART;
+       sa.__sigaction_u.__sa_handler = SIG_IGN;
+       sigemptyset(&sa.sa_mask);
+       sigaction(SIGINT, &sa, &sa_int);
+       sigaction(SIGQUIT, &sa, &sa_quit);
+       sigaction(SIGTSTP, &sa, &sa_tstp);
 
        statusp = 1;
        child_pid = fork();
@@ -339,6 +347,9 @@
                PAM_END();
                exit(1);
        case 0:
+               sigaction(SIGINT, &sa_int, NULL);
+               sigaction(SIGQUIT, &sa_quit, NULL);
+               sigaction(SIGTSTP, &sa_tstp, NULL);
                /*
                 * Set all user context except for: Environmental variables
                 * Umask Login records (wtmp, etc) Path

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to