]> granicus.if.org Git - git/commitdiff
notes: don't leak memory in git_config_get_notes_strategy
authorStefan Beller <sbeller@google.com>
Fri, 1 Apr 2016 00:35:43 +0000 (17:35 -0700)
committerJunio C Hamano <gitster@pobox.com>
Fri, 1 Apr 2016 17:31:42 +0000 (10:31 -0700)
This function asks for the value of a configuration and after
using the value does not have to retain ownership of it.
git_config_get_string_const() however is a function to get a
copy of the value, but we forget to free it before we return.

Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/notes.c

index 52aa9af74be8d47780d4762185c5cbe09624b382..afcfa8f52205ef841499489f7f103e7ce907b83e 100644 (file)
@@ -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;
        if (parse_notes_merge_strategy(value, strategy))
                git_die_config(key, "unknown notes merge strategy %s", value);
 
+       free(value);
        return 0;
 }