Re: [PATCH v3 09/10] fetch: fetch unpopulated, changed submodules
From: Junio C Hamano <hidden>
Date: 2022-02-24 21:30:48
Glen Choo [off-list ref] writes:
quoted hunk
+ char *path; /* The submodule commits that have changed in the rev walk. */ struct oid_array new_commits; };@@ -818,6 +828,7 @@ struct changed_submodule_data { static void changed_submodule_data_clear(struct changed_submodule_data *cs_data) { oid_array_clear(&cs_data->new_commits); + free(cs_data->path);
OK.
quoted hunk
} static void collect_changed_submodules_cb(struct diff_queue_struct *q,@@ -865,6 +876,8 @@ static void collect_changed_submodules_cb(struct diff_queue_struct *q, if (!item->util) item->util = xcalloc(1, sizeof(struct changed_submodule_data)); cs_data = item->util; + cs_data->super_oid = commit_oid; + cs_data->path = xstrdup(p->two->path);
Iffy. If item->util were populated already, wouldn't cs_data already have its .path member pointing at an allocated piece of memory? Can we safely free it before assigning a new value, or does somebody else still have a copy of .path and we cannot free it?