Changeset View
Changeset View
Standalone View
Standalone View
head/sys/kern/kern_environment.c
Show First 20 Lines • Show All 601 Lines • ▼ Show 20 Lines | kern_unsetenv(const char *name) | ||||
mtx_lock(&kenv_lock); | mtx_lock(&kenv_lock); | ||||
cp = _getenv_dynamic(name, &i); | cp = _getenv_dynamic(name, &i); | ||||
if (cp != NULL) { | if (cp != NULL) { | ||||
oldenv = kenvp[i]; | oldenv = kenvp[i]; | ||||
for (j = i + 1; kenvp[j] != NULL; j++) | for (j = i + 1; kenvp[j] != NULL; j++) | ||||
kenvp[i++] = kenvp[j]; | kenvp[i++] = kenvp[j]; | ||||
kenvp[i] = NULL; | kenvp[i] = NULL; | ||||
mtx_unlock(&kenv_lock); | mtx_unlock(&kenv_lock); | ||||
explicit_bzero(oldenv, strlen(oldenv)); | zfree(oldenv, M_KENV); | ||||
free(oldenv, M_KENV); | |||||
return (0); | return (0); | ||||
} | } | ||||
mtx_unlock(&kenv_lock); | mtx_unlock(&kenv_lock); | ||||
return (-1); | return (-1); | ||||
} | } | ||||
/* | /* | ||||
* Return a buffer containing the string value from an environment variable | * Return a buffer containing the string value from an environment variable | ||||
▲ Show 20 Lines • Show All 389 Lines • Show Last 20 Lines |