mirror of
https://github.com/git/git.git
synced 2024-11-23 01:46:13 +08:00
submodule: fix leaking update strategy
We're not freeing the submodule update strategy command. Provide a helper function that does this for us and call it in `update_data_release()`. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
3aef7a05ad
commit
2e492f2047
@ -2021,6 +2021,7 @@ struct update_data {
|
||||
static void update_data_release(struct update_data *ud)
|
||||
{
|
||||
free(ud->displaypath);
|
||||
submodule_update_strategy_release(&ud->update_strategy);
|
||||
module_list_release(&ud->list);
|
||||
}
|
||||
|
||||
|
@ -95,7 +95,7 @@ static void free_one_config(struct submodule_entry *entry)
|
||||
free((void *) entry->config->branch);
|
||||
free((void *) entry->config->url);
|
||||
free((void *) entry->config->ignore);
|
||||
free((void *) entry->config->update_strategy.command);
|
||||
submodule_update_strategy_release(&entry->config->update_strategy);
|
||||
free(entry->config);
|
||||
}
|
||||
|
||||
|
@ -424,6 +424,11 @@ int parse_submodule_update_strategy(const char *value,
|
||||
return 0;
|
||||
}
|
||||
|
||||
void submodule_update_strategy_release(struct submodule_update_strategy *strategy)
|
||||
{
|
||||
free((char *) strategy->command);
|
||||
}
|
||||
|
||||
const char *submodule_update_type_to_string(enum submodule_update_type type)
|
||||
{
|
||||
switch (type) {
|
||||
|
@ -41,6 +41,10 @@ struct submodule_update_strategy {
|
||||
.type = SM_UPDATE_UNSPECIFIED, \
|
||||
}
|
||||
|
||||
int parse_submodule_update_strategy(const char *value,
|
||||
struct submodule_update_strategy *dst);
|
||||
void submodule_update_strategy_release(struct submodule_update_strategy *strategy);
|
||||
|
||||
int is_gitmodules_unmerged(struct index_state *istate);
|
||||
int is_writing_gitmodules_ok(void);
|
||||
int is_staging_gitmodules_ok(struct index_state *istate);
|
||||
@ -70,8 +74,6 @@ void die_in_unpopulated_submodule(struct index_state *istate,
|
||||
void die_path_inside_submodule(struct index_state *istate,
|
||||
const struct pathspec *ps);
|
||||
enum submodule_update_type parse_submodule_update_type(const char *value);
|
||||
int parse_submodule_update_strategy(const char *value,
|
||||
struct submodule_update_strategy *dst);
|
||||
const char *submodule_update_type_to_string(enum submodule_update_type type);
|
||||
void handle_ignore_submodules_arg(struct diff_options *, const char *);
|
||||
void show_submodule_diff_summary(struct diff_options *o, const char *path,
|
||||
|
@ -12,6 +12,7 @@ submodule and "git submodule update --rebase/--merge" does not detach the HEAD.
|
||||
GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
|
||||
export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
|
||||
|
||||
TEST_PASSES_SANITIZE_LEAK=true
|
||||
. ./test-lib.sh
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user