diff options
author | nicm <nicm> | 2015-01-25 16:53:46 +0000 |
---|---|---|
committer | nicm <nicm> | 2015-01-25 16:53:46 +0000 |
commit | adcc71d4d5d338d0f7d13867e59a11741eb36afa (patch) | |
tree | 21e5f5bcae4e2f8893c407c023a332b62fd03e8d /environ.c | |
parent | c38f0d85da44d83ea69c6586a1aef428d9f489d0 (diff) |
Don't leak the individual strings when copying environment.
Diffstat (limited to 'environ.c')
-rw-r--r-- | environ.c | 7 |
1 files changed, 5 insertions, 2 deletions
@@ -168,8 +168,11 @@ environ_push(struct environ *env) var[strcspn(var, "=")] = '\0'; ARRAY_ADD(&varlist, var); } - for (i = 0; i < ARRAY_LENGTH(&varlist); i++) - unsetenv(ARRAY_ITEM(&varlist, i)); + for (i = 0; i < ARRAY_LENGTH(&varlist); i++) { + var = ARRAY_ITEM(&varlist, i); + unsetenv(var); + free(var); + } ARRAY_FREE(&varlist); RB_FOREACH(envent, environ, env) { |