... even p.masked would be fine for me. The problem is that only version 1.7.5 fixes a race condition in signal handling on busy systems: http://www.sudo.ws/bugs/show_bug.cgi?id=447 This occurs roughly every 1-2 weeks on my systems.
The other option to fix this bug is described in http://blog.famzah.net/2010/11/01/sudo-hangs-and-leaves-the-executed-program-as-zombie/ In the second last code snippet, after "The proper way to fix this is to use a timeout in the select() call:" --- sudo-orig/sudo-1.7.4p4/exec.c Sat Sep 4 00:40:19 2010 +++ sudo-1.7.4p4/exec.c Mon Nov 1 21:50:26 2010 @@ -307,7 +307,11 @@ if (recvsig[SIGCHLD]) continue; - nready = select(maxfd + 1, fdsr, fdsw, NULL, NULL); + struct timeval timeout; + timeout.tv_sec = 1; // Linux resets this, so set it everytime + timeout.tv_usec = 0; + nready = select(maxfd + 1, fdsr, fdsw, NULL, &timeout); if (nready == -1) { if (errno == EINTR) continue;
.5 was released today.