]> granicus.if.org Git - sudo/commitdiff
Only block SIGINT, SIGQUIT, SIGTSTP (which can be generated from
authorTodd C. Miller <Todd.Miller@courtesan.com>
Fri, 27 Aug 1999 21:02:24 +0000 (21:02 +0000)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Fri, 27 Aug 1999 21:02:24 +0000 (21:02 +0000)
the keyboard).  Since we run with ruid/euid == 0 the user can't
really signal us in nasty ways.

sudo.c

diff --git a/sudo.c b/sudo.c
index efca1bffa689ddae97aea6a8cb0da1778616a920..bc39daacc79a51149b666bb636f684a6cb5f4575 100644 (file)
--- a/sudo.c
+++ b/sudo.c
@@ -201,15 +201,17 @@ main(argc, argv)
 #endif /* POSIX_SIGNALS */
 
     /*
-     * Block signals so the user cannot kill us at some point and
+     * Block signals so the user cannot interrupt us at some point and
      * avoid the logging.
      */
 #ifdef POSIX_SIGNALS
-    (void) sigfillset(&set);
-    (void) sigdelset(&set, SIGCHLD);
+    (void) sigemptyset(&set);
+    (void) sigaddset(&set, SIGINT);
+    (void) sigaddset(&set, SIGQUIT);
+    (void) sigaddset(&set, SIGTSTP);
     (void) sigprocmask(SIG_BLOCK, &set, &oset);
 #else
-    omask = sigblock(sigmask(SIGHUP)|sigmask(SIGINT)|sigmask(SIGQUIT)|sigmask(SIGILL)|sigmask(SIGTSTP));
+    omask = sigblock(sigmask(SIGINT)|sigmask(SIGQUIT)|sigmask(SIGTSTP));
 #endif /* POSIX_SIGNALS */
 
     /*