submodule--helper: don't leak {run,capture}_command() cp.dir argument

Fix a memory leak in c51f8f94e5 (submodule--helper: run update
procedures from C, 2021-08-24) and 3c3558f095 (submodule--helper: run
update using child process struct, 2022-03-15) by not allocating
memory in the first place.

The "dir" member of "struct child_process" will not be modified by
that API, and it's declared to be "const char *". So let's not
needlessly duplicate these strings.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Reviewed-by: Glen Choo <chooglen@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Ævar Arnfjörð Bjarmason 2022-09-01 01:14:12 +02:00 committed by Junio C Hamano
parent 4b9d12460d
commit 0a4d31537d

View file

@ -2126,7 +2126,7 @@ static int is_tip_reachable(const char *path, const struct object_id *oid)
char *hex = oid_to_hex(oid);
cp.git_cmd = 1;
cp.dir = xstrdup(path);
cp.dir = path;
cp.no_stderr = 1;
strvec_pushl(&cp.args, "rev-list", "-n", "1", hex, "--not", "--all", NULL);
@ -2145,7 +2145,7 @@ static int fetch_in_submodule(const char *module_path, int depth, int quiet,
prepare_submodule_repo_env(&cp.env);
cp.git_cmd = 1;
cp.dir = xstrdup(module_path);
cp.dir = module_path;
strvec_push(&cp.args, "fetch");
if (quiet)
@ -2198,7 +2198,7 @@ static int run_update_command(const struct update_data *ud, int subforce)
}
strvec_push(&cp.args, oid);
cp.dir = xstrdup(ud->sm_path);
cp.dir = ud->sm_path;
prepare_submodule_repo_env(&cp.env);
if ((ret = run_command(&cp))) {
switch (ud->update_strategy.type) {