envVars
if (envVars[ndx].putenv) {
if (strncmpeq(envVars[ndx].name, name, nameLen)) {
return (envVars[ndx].name + nameLen +
} else if ((!onlyActive || envVars[ndx].active) &&
(envVars[ndx].nameLen == nameLen &&
strncmpeq(envVars[ndx].name, name, nameLen))) {
return (envVars[ndx].value);
memmove(&(envVars[envNdx]), &(envVars[envNdx + 1]),
(envVarsTotal - envNdx) * sizeof (*envVars));
memset(&(envVars[envVarsTotal]), 0, sizeof (*envVars));
if (envVars != NULL) {
if (envVars[envNdx].putenv) {
free(envVars[envNdx].name);
envVars[envNdx].active = false;
free(envVars);
envVars = NULL;
if (envVars[envNdx].active)
intEnviron[environNdx++] = envVars[envNdx].name;
struct envVars *tmpEnvVars;
tmpEnvVars = reallocarray(envVars, newEnvVarsSize,
sizeof(*envVars));
envVars = tmpEnvVars;
envVars = calloc(envVarsSize, sizeof(*envVars));
if (envVars == NULL)
envVars[envNdx].putenv = false;
envVars[envNdx].name =
if (envVars[envNdx].name == NULL)
envVars[envNdx].value = strchr(envVars[envNdx].name, '=');
if (envVars[envNdx].value != NULL) {
envVars[envNdx].value++;
envVars[envNdx].valueSize =
strlen(envVars[envNdx].value);
__env_warnx(CorruptEnvValueMsg, envVars[envNdx].name,
strlen(envVars[envNdx].name));
nameLen = envVars[envNdx].value - envVars[envNdx].name - 1;
envVars[envNdx].nameLen = nameLen;
if (__findenv(envVars[envNdx].name, nameLen, &activeNdx,
__env_warnx(CorruptEnvFindMsg, envVars[envNdx].name,
envVars[activeNdx].active = true;
else if (envVars == NULL || environ != intEnviron)
} else if (envVars == NULL || environ != intEnviron) {
if (envVars[envNdx].active) {
envVars[envNdx].active = false;
if (envVars[envNdx].putenv)
else if (envVars[envNdx].valueSize >= valueLen)
envVars[envNdx].name = malloc(nameLen + sizeof ("=") +
if (envVars[envNdx].name == NULL) {
envVars[envNdx].nameLen = nameLen;
envVars[envNdx].valueSize = valueLen;
env = stpncpy(envVars[envNdx].name, name, nameLen);
env = envVars[envNdx].value;
envVars[envNdx].value = env;
envVars[envNdx].active = true;
if (__merge_environ() == -1 || (envVars == NULL && __build_env() == -1))
if (__merge_environ() == -1 || (envVars == NULL && __build_env() == -1))
if (envVars[envNdx].putenv) {
envVars[envNdx].name = string;
envVars[envNdx].active = false;
envVars[envNdx].name = string;
envVars[envNdx].nameLen = -1;
envVars[envNdx].value = NULL;
envVars[envNdx].valueSize = -1;
envVars[envNdx].putenv = true;
envVars[envNdx].active = true;
if (__merge_environ() == -1 || (envVars == NULL && __build_env() == -1))
envVars[envNdx].active = false;
if (envVars[envNdx].putenv)
if (__merge_environ() == -1 || (envVars == NULL && __build_env() == -1))
envVars[ndx].active = false;
if (envVars[ndx].putenv)
} *envVars = NULL;