From adcc71d4d5d338d0f7d13867e59a11741eb36afa Mon Sep 17 00:00:00 2001 From: nicm Date: Sun, 25 Jan 2015 16:53:46 +0000 Subject: [PATCH] Don't leak the individual strings when copying environment. --- environ.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/environ.c b/environ.c index 284f8b55..0dd91783 100644 --- a/environ.c +++ b/environ.c @@ -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) {