@@ -2537,6 +2537,7 @@ static int update_submodules(struct update_data *update_data)
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;
@@ -2625,7 +2626,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;
}
@@ -2648,6 +2649,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;
}
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> --- builtin/submodule--helper.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)