Skip to content

Commit

Permalink
restore_env(): free the saved environment variable once we are done
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Junio C Hamano committed Feb 2, 2016
1 parent 441981b commit 8384c13
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions git.c
Original file line number Diff line number Diff line change
Expand Up @@ -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]);
}
}
}

Expand Down

0 comments on commit 8384c13

Please sign in to comment.