Stefan Beller <sbeller@xxxxxxxxxx> writes: > +static void prepare_possible_alternates(const char *sm_name, > + struct string_list *reference) > +{ > + char *sm_alternate = NULL, *error_strategy = NULL; > + struct submodule_alternate_setup sas = SUBMODULE_ALTERNATE_SETUP_INIT; > + > + git_config_get_string("submodule.alternateLocation", &sm_alternate); > + if (!sm_alternate) > + return; > + > + git_config_get_string("submodule.alternateErrorStrategy", &error_strategy); I have to admit that I need to follow the codepath in config.c every time to check, but I _think_ git_config_get_string() gives you your own copy of the value. As this function does not give ownership of sm_alternate or error_strategy to something else, they are leaked every time this function is called, I think. > + sas.submodule_name = sm_name; > + sas.reference = reference; > + if (!strcmp(error_strategy, "die")) > + sas.error_mode = SUBMODULE_ALTERNATE_ERROR_DIE; > + if (!strcmp(error_strategy, "info")) > + sas.error_mode = SUBMODULE_ALTERNATE_ERROR_INFO; > + if (!strcmp(sm_alternate, "superproject")) > + foreach_alt_odb(add_possible_reference_from_superproject, &sas); > +} -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html