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

Diff for /src/usr.bin/sudo/Attic/env.c between version 1.23 and 1.24

version 1.23, 2010/06/02 19:30:10 version 1.24, 2010/07/08 21:11:31
Line 317 
Line 317 
 unsetenv(var)  unsetenv(var)
     const char *var;      const char *var;
 {  {
     char **ep = env.envp;      char **ep;
     size_t len;      size_t len;
   
     if (strchr(var, '=') != NULL) {      if (var == NULL || *var == '\0' || strchr(var, '=') != NULL) {
         errno = EINVAL;          errno = EINVAL;
 #ifdef UNSETENV_VOID  #ifdef UNSETENV_VOID
         return;          return;
Line 355 
Line 355 
     }      }
   
     len = strlen(var);      len = strlen(var);
     while (*ep != NULL) {      for (ep = env.envp; *ep != NULL;) {
         if (strncmp(var, *ep, len) == 0 && (*ep)[len] == '=') {          if (strncmp(var, *ep, len) == 0 && (*ep)[len] == '=') {
             /* Found it; shift remainder + NULL over by one and update len. */              /* Found it; shift remainder + NULL over by one. */
             memmove(ep, ep + 1,              char **cur = ep;
                 (env.env_len - (ep - env.envp)) * sizeof(char *));              while ((*cur = *(cur + 1)) != NULL)
             env.env_len--;                  cur++;
             /* Keep going, could be multiple instances of the var. */              /* Keep going, could be multiple instances of the var. */
         } else {          } else {
             ep++;              ep++;
         }          }
     }      }
       env.env_len = ep - env.envp;
 #ifndef UNSETENV_VOID  #ifndef UNSETENV_VOID
     return(0);      return(0);
 #endif  #endif
Line 462 
Line 463 
         if (found && overwrite) {          if (found && overwrite) {
             while (*ep != NULL) {              while (*ep != NULL) {
                 if (strncmp(str, *ep, len) == 0) {                  if (strncmp(str, *ep, len) == 0) {
                     memmove(ep, ep + 1,                      char **cur = ep;
                         (env.env_len - (ep - env.envp)) * sizeof(char *));                      while ((*cur = *(cur + 1)) != NULL)
                     env.env_len--;                          cur++;
                 } else {                  } else {
                     ep++;                      ep++;
                 }                  }
             }              }
               env.env_len = ep - env.envp;
         }          }
     }      }
   

Legend:
Removed from v.1.23  
changed lines
  Added in v.1.24