Diff for /embedaddon/sudo/plugins/sudoers/env.c between versions 1.1.1.5 and 1.1.1.6

version 1.1.1.5, 2013/10/14 07:56:34 version 1.1.1.6, 2014/06/15 16:12:54
Line 285  sudo_putenv_nodebug(char *str, bool dupcheck, bool ove Line 285  sudo_putenv_nodebug(char *str, bool dupcheck, bool ove
         size_t nsize;          size_t nsize;
   
         if (env.env_size > SIZE_MAX - 128) {          if (env.env_size > SIZE_MAX - 128) {
            fatalx_nodebug(_("internal error, %s overflow"),            fatalx_nodebug(U_("internal error, %s overflow"),
                 "sudo_putenv_nodebug()");                  "sudo_putenv_nodebug()");
         }          }
         nsize = env.env_size + 128;          nsize = env.env_size + 128;
         if (nsize > SIZE_MAX / sizeof(char *)) {          if (nsize > SIZE_MAX / sizeof(char *)) {
            fatalx_nodebug(_("internal error, %s overflow"),            fatalx_nodebug(U_("internal error, %s overflow"),
                 "sudo_putenv_nodebug()");                  "sudo_putenv_nodebug()");
         }          }
         nenvp = realloc(env.envp, nsize * sizeof(char *));          nenvp = realloc(env.envp, nsize * sizeof(char *));
Line 364  sudo_putenv(char *str, bool dupcheck, bool overwrite) Line 364  sudo_putenv(char *str, bool dupcheck, bool overwrite)
     if (rval == -1) {      if (rval == -1) {
 #ifdef ENV_DEBUG  #ifdef ENV_DEBUG
         if (env.envp[env.env_len] != NULL)          if (env.envp[env.env_len] != NULL)
            fatalx(_("sudo_putenv: corrupted envp, length mismatch"));            fatalx(U_("sudo_putenv: corrupted envp, length mismatch"));
 #endif  #endif
         fatal(NULL);          fatal(NULL);
     }      }
Line 392  sudo_setenv2(const char *var, const char *val, bool du Line 392  sudo_setenv2(const char *var, const char *val, bool du
         strlcat(estring, "=", esize) >= esize ||          strlcat(estring, "=", esize) >= esize ||
         strlcat(estring, val, esize) >= esize) {          strlcat(estring, val, esize) >= esize) {
   
        fatalx(_("internal error, %s overflow"), "sudo_setenv2()");        fatalx(U_("internal error, %s overflow"), "sudo_setenv2()");
     }      }
     rval = sudo_putenv(estring, dupcheck, overwrite);      rval = sudo_putenv(estring, dupcheck, overwrite);
     if (rval == -1)      if (rval == -1)
Line 558  matches_env_delete(const char *var) Line 558  matches_env_delete(const char *var)
     debug_decl(matches_env_delete, SUDO_DEBUG_ENV)      debug_decl(matches_env_delete, SUDO_DEBUG_ENV)
   
     /* Skip anything listed in env_delete. */      /* Skip anything listed in env_delete. */
    for (cur = def_env_delete; cur; cur = cur->next) {    SLIST_FOREACH(cur, &def_env_delete, entries) {
         len = strlen(cur->value);          len = strlen(cur->value);
         /* Deal with '*' wildcard */          /* Deal with '*' wildcard */
         if (cur->value[len - 1] == '*') {          if (cur->value[len - 1] == '*') {
Line 589  matches_env_check(const char *var) Line 589  matches_env_check(const char *var)
     int keepit = -1;      int keepit = -1;
     debug_decl(matches_env_check, SUDO_DEBUG_ENV)      debug_decl(matches_env_check, SUDO_DEBUG_ENV)
   
    for (cur = def_env_check; cur; cur = cur->next) {    SLIST_FOREACH(cur, &def_env_check, entries) {
         len = strlen(cur->value);          len = strlen(cur->value);
         /* Deal with '*' wildcard */          /* Deal with '*' wildcard */
         if (cur->value[len - 1] == '*') {          if (cur->value[len - 1] == '*') {
Line 624  matches_env_keep(const char *var) Line 624  matches_env_keep(const char *var)
         goto done;          goto done;
     }      }
   
    for (cur = def_env_keep; cur; cur = cur->next) {    SLIST_FOREACH(cur, &def_env_keep, entries) {
         len = strlen(cur->value);          len = strlen(cur->value);
         /* Deal with '*' wildcard */          /* Deal with '*' wildcard */
         if (cur->value[len - 1] == '*') {          if (cur->value[len - 1] == '*') {
Line 1085  init_envtables(void) Line 1085  init_envtables(void)
     for (p = initial_badenv_table; *p; p++) {      for (p = initial_badenv_table; *p; p++) {
         cur = ecalloc(1, sizeof(struct list_member));          cur = ecalloc(1, sizeof(struct list_member));
         cur->value = estrdup(*p);          cur->value = estrdup(*p);
        cur->next = def_env_delete;        SLIST_INSERT_HEAD(&def_env_delete, cur, entries);
        def_env_delete = cur; 
     }      }
   
     /* Fill in the "env_check" list. */      /* Fill in the "env_check" list. */
     for (p = initial_checkenv_table; *p; p++) {      for (p = initial_checkenv_table; *p; p++) {
         cur = ecalloc(1, sizeof(struct list_member));          cur = ecalloc(1, sizeof(struct list_member));
         cur->value = estrdup(*p);          cur->value = estrdup(*p);
        cur->next = def_env_check;        SLIST_INSERT_HEAD(&def_env_check, cur, entries);
        def_env_check = cur; 
     }      }
   
     /* Fill in the "env_keep" list. */      /* Fill in the "env_keep" list. */
     for (p = initial_keepenv_table; *p; p++) {      for (p = initial_keepenv_table; *p; p++) {
         cur = ecalloc(1, sizeof(struct list_member));          cur = ecalloc(1, sizeof(struct list_member));
         cur->value = estrdup(*p);          cur->value = estrdup(*p);
        cur->next = def_env_keep;        SLIST_INSERT_HEAD(&def_env_keep, cur, entries);
        def_env_keep = cur; 
     }      }
 }  }
   

Removed from v.1.1.1.5  
changed lines
  Added in v.1.1.1.6


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>