diff options
| author | Andrey A. Chernov <ache@FreeBSD.org> | 2012-10-02 17:44:08 +0000 |
|---|---|---|
| committer | Andrey A. Chernov <ache@FreeBSD.org> | 2012-10-02 17:44:08 +0000 |
| commit | 2de80aea8057d2b314eab5ba1d0c782ea1bb1b3a (patch) | |
| tree | 4e2ac684c11f1edbdfd30f0799fdb6efbc4da0a6 /lib/libc/stdlib/getenv.c | |
| parent | 4544286921adcf8c4dd39f19141091d6fafcefb8 (diff) | |
Notes
Diffstat (limited to 'lib/libc/stdlib/getenv.c')
| -rw-r--r-- | lib/libc/stdlib/getenv.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/libc/stdlib/getenv.c b/lib/libc/stdlib/getenv.c index b7826d72a5d4e..37602a915f400 100644 --- a/lib/libc/stdlib/getenv.c +++ b/lib/libc/stdlib/getenv.c @@ -675,11 +675,13 @@ unsetenv(const char *name) /* Deactivate specified variable. */ envNdx = envVarsTotal - 1; - if (__findenv(name, nameLen, &envNdx, true) != NULL) { + /* Remove all occurrences. */ + while (__findenv(name, nameLen, &envNdx, true) != NULL) { envVars[envNdx].active = false; if (envVars[envNdx].putenv) __remove_putenv(envNdx); __rebuild_environ(envActive - 1); + envNdx = envVarsTotal - 1; } return (0); |
