Stefan Beller <sbel...@google.com> 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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to