submodule--helper: "struct pathspec" memory leak in module_update()
The module_update() function calls module_list_compute() twice, which in turn will reset the "struct pathspec" passed to it. Let's instead track two of them, and clear them both. 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:
parent
8fb201d4da
commit
4b9d12460d
@ -2561,6 +2561,7 @@ cleanup:
|
||||
static int module_update(int argc, const char **argv, const char *prefix)
|
||||
{
|
||||
struct pathspec pathspec = { 0 };
|
||||
struct pathspec pathspec2 = { 0 };
|
||||
struct update_data opt = UPDATE_DATA_INIT;
|
||||
struct list_objects_filter_options filter_options = { 0 };
|
||||
int ret;
|
||||
@ -2649,7 +2650,7 @@ static int module_update(int argc, const char **argv, const char *prefix)
|
||||
struct init_cb info = INIT_CB_INIT;
|
||||
|
||||
if (module_list_compute(argc, argv, opt.prefix,
|
||||
&pathspec, &list) < 0) {
|
||||
&pathspec2, &list) < 0) {
|
||||
ret = 1;
|
||||
goto cleanup;
|
||||
}
|
||||
@ -2672,6 +2673,7 @@ static int module_update(int argc, const char **argv, const char *prefix)
|
||||
cleanup:
|
||||
list_objects_filter_release(&filter_options);
|
||||
clear_pathspec(&pathspec);
|
||||
clear_pathspec(&pathspec2);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user