From: Todd C. Miller Date: Thu, 10 Jun 2010 19:19:38 +0000 (-0400) Subject: Use SA_INTERRUPT in sa_flags X-Git-Tag: SUDO_1_7_3~90 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=11c3bc7387bf6d2712f25ef26cc156a0a757cb3e;p=sudo Use SA_INTERRUPT in sa_flags --HG-- branch : 1.7 --- diff --git a/exec.c b/exec.c index d075d48fa..60005efdb 100644 --- a/exec.c +++ b/exec.c @@ -207,7 +207,7 @@ sudo_execve(path, argv, envp, uid, cstat, dowait, bgmode) sigemptyset(&sa.sa_mask); /* Note: HP-UX select() will not be interrupted if SA_RESTART set */ - sa.sa_flags = 0; /* do not restart syscalls */ + sa.sa_flags = SA_INTERRUPT; /* do not restart syscalls */ sa.sa_handler = handler; sigaction(SIGCHLD, &sa, NULL); sigaction(SIGHUP, &sa, NULL); diff --git a/exec_pty.c b/exec_pty.c index 06c83c389..0090394d4 100644 --- a/exec_pty.c +++ b/exec_pty.c @@ -414,7 +414,7 @@ fork_pty(path, argv, envp, sv, rbac_enabled, maxfd) } /* Job control signals to relay from parent to child. */ - sa.sa_flags = 0; /* do not restart syscalls */ + sa.sa_flags = SA_INTERRUPT; /* do not restart syscalls */ sa.sa_handler = handler; sigaction(SIGTSTP, &sa, NULL); #if 0 /* XXX - add these? */ @@ -712,7 +712,7 @@ exec_monitor(path, argv, envp, backchannel, rbac) sigaction(SIGTTOU, &sa, NULL); /* Note: HP-UX select() will not be interrupted if SA_RESTART set */ - sa.sa_flags = 0; + sa.sa_flags = SA_INTERRUPT; sa.sa_handler = handler; sigaction(SIGCHLD, &sa, NULL); diff --git a/logging.c b/logging.c index e23e95c89..00759d385 100644 --- a/logging.c +++ b/logging.c @@ -505,7 +505,7 @@ send_mail(fmt, va_alist) /* Ignore SIGPIPE in case mailer exits prematurely (or is missing). */ zero_bytes(&sa, sizeof(sa)); sigemptyset(&sa.sa_mask); - sa.sa_flags = 0; + sa.sa_flags = SA_INTERRUPT; sa.sa_handler = SIG_IGN; (void) sigaction(SIGPIPE, &sa, NULL); diff --git a/mon_systrace.c b/mon_systrace.c index 4afc05a39..2e88ba1b8 100644 --- a/mon_systrace.c +++ b/mon_systrace.c @@ -113,7 +113,7 @@ systrace_attach(pid) error(1, "sigprocmask"); zero_bytes(&sa, sizeof(sa)); sigemptyset(&sa.sa_mask); - sa.sa_flags = 0; + sa.sa_flags = SA_INTERRUPT; sa.sa_handler = catchsig; if (sigaction(SIGUSR1, &sa, &osa) != 0) error(1, "sigaction"); @@ -151,7 +151,7 @@ systrace_attach(pid) dodetach = 0; zero_bytes(&sa, sizeof(sa)); sigemptyset(&sa.sa_mask); - sa.sa_flags = 0; + sa.sa_flags = SA_INTERRUPT; sa.sa_handler = catchsig; if (sigaction(SIGUSR1, &osa, NULL) != 0 || sigaction(SIGHUP, &sa, NULL) != 0 || diff --git a/tgetpass.c b/tgetpass.c index 1ab6f1cae..6c774624d 100644 --- a/tgetpass.c +++ b/tgetpass.c @@ -210,7 +210,7 @@ sudo_askpass(prompt) /* Ignore SIGPIPE in case child exits prematurely */ zero_bytes(&sa, sizeof(sa)); sigemptyset(&sa.sa_mask); - sa.sa_flags = 0; + sa.sa_flags = SA_INTERRUPT; sa.sa_handler = SIG_IGN; (void) sigaction(SIGPIPE, &sa, &saved_sa_pipe);