[PATCH v3 24/26] submodule--helper: free rest of "displaypath" in "struct update_data"
From: Ævar Arnfjörð Bjarmason <hidden>
Date: 2022-07-21 19:15:16
Subsystem:
the rest · Maintainer:
Linus Torvalds
From: Ævar Arnfjörð Bjarmason <hidden>
Date: 2022-07-21 19:15:16
Subsystem:
the rest · Maintainer:
Linus Torvalds
Fix a leak in code added in c51f8f94e5b (submodule--helper: run update procedures from C, 2021-08-24), we clobber the "displaypath" member of the passed-in "struct update_data" both so that die() messages in this update_submodule() function itself can use it, and for the run_update_procedure() called within this function. Signed-off-by: Ævar Arnfjörð Bjarmason <redacted> --- builtin/submodule--helper.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/builtin/submodule--helper.c b/builtin/submodule--helper.c
index b65665105e7..4e70a74357c 100644
--- a/builtin/submodule--helper.c
+++ b/builtin/submodule--helper.c@@ -2551,10 +2551,11 @@ static int update_submodule(struct update_data *update_data, int *must_die_on_failure) { int ret = 1; + char *to_free, *restore = update_data->displaypath; ensure_core_worktree(update_data->sm_path); - update_data->displaypath = get_submodule_displaypath( + update_data->displaypath = to_free = get_submodule_displaypath( update_data->sm_path, update_data->prefix); determine_submodule_update_strategy(the_repository, update_data->just_cloned,
@@ -2628,6 +2629,9 @@ static int update_submodule(struct update_data *update_data, ret = 0; cleanup: + free(to_free); + update_data->displaypath = restore; + return ret; }
--
2.37.1.1095.g0bd6f54ba8a