diff options
author | Junio C Hamano <gitster@pobox.com> | 2016-02-02 15:42:59 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2016-02-02 15:42:59 -0800 |
commit | 8384c139cb9409fb3cf5ef70afff263917581258 (patch) | |
tree | b7c6580b94ae926f5dafc91eca392b89809236f0 | |
parent | 441981bc85ea2b648d7ffb2515b371071208e657 (diff) | |
download | git-8384c139cb9409fb3cf5ef70afff263917581258.tar.gz git-8384c139cb9409fb3cf5ef70afff263917581258.tar.xz |
restore_env(): free the saved environment variable once we are done
Just like we free orig_cwd, which is the value of the original
working directory saved in save_env_before_alias(), once we are
done with it, the contents of orig_env[] array, saved in the
save_env_before_alias() function should be freed; otherwise,
the second and subsequent calls to save/restore pair will leak
the memory allocated in save_env_before_alias().
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | git.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -54,10 +54,12 @@ static void restore_env(int external_alias) if (external_alias && !strcmp(env_names[i], GIT_PREFIX_ENVIRONMENT)) continue; - if (orig_env[i]) + if (orig_env[i]) { setenv(env_names[i], orig_env[i], 1); - else + free(orig_env[i]); + } else { unsetenv(env_names[i]); + } } } |