On Thu, Mar 31, 2016 at 8:35 PM, Stefan Beller <[email protected]> wrote:
> `value` is just a temporary scratchpad, so we need to make sure it doesn't
> leak. It is xstrdup'd in `git_config_get_string_const` and
> `parse_notes_merge_strategy` just compares the string against predefined
> values, so no need to keep it around longer.
>
> Signed-off-by: Stefan Beller <[email protected]>
> ---
> diff --git a/builtin/notes.c b/builtin/notes.c
> index 52aa9af..afcfa8f 100644
> --- a/builtin/notes.c
> +++ b/builtin/notes.c
> @@ -741,13 +741,14 @@ static int merge_commit(struct notes_merge_options *o)
> static int git_config_get_notes_strategy(const char *key,
> enum notes_merge_strategy *strategy)
> {
> - const char *value;
> + char *value;
>
> - if (git_config_get_string_const(key, &value))
> + if (git_config_get_string(key, &value))
> return 1;
Meh. Rather than reverting the git_config_get_value(), it would have
been just as easy and safer (less chance of a future change
re-introducing a leak) if you had just inserted the necessary check
here:
if (!value)
return config_error_nonbool(key);
But, perhaps it's not worth the patch churn at this point...
> if (parse_notes_merge_strategy(value, strategy))
> git_die_config(key, "unknown notes merge strategy %s", value);
>
> + free(value);
> return 0;
> }
>
> --
> 2.5.0.264.gc776916.dirty
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html