mirror of
https://github.com/git/git.git
synced 2024-10-28 04:49:43 +01:00
builtin/submodule--helper: clear child process when not running it
In `runcommand_in_submodule_cb()` we may end up not executing the child command when `argv` is empty. But we still populate the command with environment variables and other things, which needs cleanup. This leads to a memory leak because we do not call `finish_command()`. Fix this by clearing the child process when we don't execute it. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
2e492f2047
commit
8f786a8e9f
2 changed files with 8 additions and 3 deletions
|
@ -363,9 +363,13 @@ static void runcommand_in_submodule_cb(const struct cache_entry *list_item,
|
|||
if (!info->quiet)
|
||||
printf(_("Entering '%s'\n"), displaypath);
|
||||
|
||||
if (info->argv[0] && run_command(&cp))
|
||||
die(_("run_command returned non-zero status for %s\n."),
|
||||
displaypath);
|
||||
if (info->argv[0]) {
|
||||
if (run_command(&cp))
|
||||
die(_("run_command returned non-zero status for %s\n."),
|
||||
displaypath);
|
||||
} else {
|
||||
child_process_clear(&cp);
|
||||
}
|
||||
|
||||
if (info->recursive) {
|
||||
struct child_process cpr = CHILD_PROCESS_INIT;
|
||||
|
|
|
@ -12,6 +12,7 @@ that are currently checked out.
|
|||
GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
|
||||
export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
|
||||
|
||||
TEST_PASSES_SANITIZE_LEAK=true
|
||||
. ./test-lib.sh
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue