]> granicus.if.org Git - sudo/commitdiff
Reset signal mask at sudo startup time; we need to be able to rely on
authorTodd C. Miller <Todd.Miller@courtesan.com>
Tue, 14 Sep 2010 13:23:28 +0000 (09:23 -0400)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Tue, 14 Sep 2010 13:23:28 +0000 (09:23 -0400)
normal signal delivery to control the child process.

--HG--
branch : 1.7

sudo.c

diff --git a/sudo.c b/sudo.c
index 0d314882f1f024a33352fabae9c87618744bd106..3b9bd3f1631217622d288c79873c4a2899fbe822 100644 (file)
--- a/sudo.c
+++ b/sudo.c
@@ -1057,10 +1057,15 @@ static void
 initial_setup()
 {
     int miss[3], devnull = -1;
+    sigset_t mask;
 #if defined(__linux__) || (defined(RLIMIT_CORE) && !defined(SUDO_DEVEL))
     struct rlimit rl;
 #endif
 
+    /* Reset signal mask. */
+    (void) sigfillset(&mask);
+    (void) sigprocmask(SIG_UNBLOCK, &mask, NULL);
+
 #if defined(__linux__)
     /*
      * Unlimit the number of processes since Linux's setuid() will