size_t val_len = strlen(val);
char *cp, *str;
- cp = str = emalloc(var_len + 1 + val_len + 1);
- memcpy(cp, var, var_len);
- cp += var_len;
- *cp++ = '=';
- memcpy(cp, val, val_len);
- cp += val_len;
- *cp = '\0';
+ cp = str = malloc(var_len + 1 + val_len + 1);
+ if (str != NULL) {
+ memcpy(cp, var, var_len);
+ cp += var_len;
+ *cp++ = '=';
+ memcpy(cp, val, val_len);
+ cp += val_len;
+ *cp = '\0';
+ }
return(str);
}
if (sudo_settings[i].value) {
sudo_debug(9, "settings: %s=%s", sudo_settings[i].name,
sudo_settings[i].value);
- settings[j++] = fmt_string(sudo_settings[i].name,
+ settings[j] = fmt_string(sudo_settings[i].name,
sudo_settings[i].value);
+ if (settings[j] == NULL)
+ errorx(1, "unable to allocate memory");
+ j++;
}
}
settings[j] = NULL;
errorx(1, "unknown uid %lu: who are you?", (unsigned long)ud->uid);
user_info[i] = fmt_string("user", pw->pw_name);
+ if (user_info[i] == NULL)
+ errorx(1, "unable to allocate memory");
ud->username = user_info[i] + sizeof("user=") - 1;
easprintf(&user_info[++i], "uid=%lu", (unsigned long)ud->uid);
if (getcwd(cwd, sizeof(cwd)) != NULL) {
user_info[++i] = fmt_string("cwd", cwd);
+ if (user_info[i] == NULL)
+ errorx(1, "unable to allocate memory");
ud->cwd = user_info[i] + sizeof("cwd=") - 1;
}
if ((cp = ttyname(STDIN_FILENO)) || (cp = ttyname(STDOUT_FILENO)) ||
(cp = ttyname(STDERR_FILENO))) {
user_info[++i] = fmt_string("tty", cp);
+ if (user_info[i] == NULL)
+ errorx(1, "unable to allocate memory");
ud->tty = user_info[i] + sizeof("tty=") - 1;
}
else
strlcpy(host, "localhost", sizeof(host));
user_info[++i] = fmt_string("host", host);
+ if (user_info[i] == NULL)
+ errorx(1, "unable to allocate memory");
ud->host = user_info[i] + sizeof("host=") - 1;
user_info[++i] = NULL;