From af50ab0088d633bc47d4961769ad460f1099f4dc Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 30 Sep 2018 11:45:59 -0600 Subject: [PATCH] sched/environ/env_unsetenv.c: Fix a memory leak introduced by the previous commit. --- sched/environ/env_unsetenv.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/sched/environ/env_unsetenv.c b/sched/environ/env_unsetenv.c index 7f04d485d1..74f44caee1 100644 --- a/sched/environ/env_unsetenv.c +++ b/sched/environ/env_unsetenv.c @@ -97,11 +97,20 @@ int unsetenv(FAR const char *name) newsize = group->tg_envsize; if (newsize <= 0) { - group->tg_envp = NULL; + /* Free the old environment (if there was one) */ + + if (group->tg_envp != NULL) + { + kumm_free(group->tg_envp); + group->tg_envp = NULL; + } + group->tg_envsize = 0; } else { + /* Reallocate the environment to reclaim a little memory */ + newenvp = (FAR char *)kumm_realloc(group->tg_envp, newsize); if (newenvp == NULL) {