[BACK]Return to visudo.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / sudo

Diff for /src/usr.bin/sudo/Attic/visudo.c between version 1.20 and 1.21

version 1.20, 2007/09/05 23:55:57 version 1.21, 2008/07/31 16:44:04
Line 78 
Line 78 
 #include "version.h"  #include "version.h"
   
 #ifndef lint  #ifndef lint
 __unused static const char rcsid[] = "$Sudo: visudo.c,v 1.166.2.10 2007/09/01 13:39:13 millert Exp $";  __unused static const char rcsid[] = "$Sudo: visudo.c,v 1.166.2.11 2008/06/21 00:47:52 millert Exp $";
 #endif /* lint */  #endif /* lint */
   
 struct sudoersfile {  struct sudoersfile {
Line 590 
Line 590 
     char **argv;      char **argv;
 {  {
     int status;      int status;
     pid_t pid;      pid_t pid, rv;
     sigset_t set, oset;  
   
     (void) sigemptyset(&set);  
     (void) sigaddset(&set, SIGCHLD);  
     (void) sigprocmask(SIG_BLOCK, &set, &oset);  
   
     switch (pid = fork()) {      switch (pid = fork()) {
         case -1:          case -1:
             warn("unable to run %s", path);              warn("unable to run %s", path);
             Exit(-1);              Exit(-1);
             break;      /* NOTREACHED */              break;      /* NOTREACHED */
         case 0:          case 0:
             (void) sigprocmask(SIG_SETMASK, &oset, NULL);  
             endpwent();              endpwent();
             closefrom(STDERR_FILENO + 1);              closefrom(STDERR_FILENO + 1);
             execv(path, argv);              execv(path, argv);
Line 612 
Line 606 
             break;      /* NOTREACHED */              break;      /* NOTREACHED */
     }      }
   
       do {
 #ifdef sudo_waitpid  #ifdef sudo_waitpid
     pid = sudo_waitpid(pid, &status, 0);          rv = sudo_waitpid(pid, &status, 0);
 #else  #else
     pid = wait(&status);          rv = wait(&status);
 #endif  #endif
       } while (rv == -1 && errno == EINTR);
   
     (void) sigprocmask(SIG_SETMASK, &oset, NULL);      if (rv == -1 || !WIFEXITED(status))
   
     if (pid == -1 || !WIFEXITED(status))  
         return(-1);          return(-1);
     return(WEXITSTATUS(status));      return(WEXITSTATUS(status));
 }  }

Legend:
Removed from v.1.20  
changed lines
  Added in v.1.21