Eric Sunshine <sunshine@xxxxxxxxxxxxxx> writes: > On Thu, Mar 31, 2016 at 2:04 PM, Stefan Beller <sbeller@xxxxxxxxxx> 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. Instead of using >> `git_config_get_string_const`, use `git_config_get_value`, which doesn't >> return a copy. >> >> Signed-off-by: Stefan Beller <sbeller@xxxxxxxxxx> >> --- >> diff --git a/builtin/notes.c b/builtin/notes.c >> @@ -746,7 +746,7 @@ static int git_config_get_notes_strategy(const char *key, >> { >> const char *value; >> >> - if (git_config_get_string_const(key, &value)) >> + if (git_config_get_value(key, &value)) > > Hmm, doesn't this introduce a rather severe regression? Unless I'm > misreading the code (possible), with the original, if 'key' was > boolean (lacked a value in the config file), then it would complain: > > Missing value for 'floop.blork' > > but, with this change, it will dereference NULL and crash. > > (My understanding was that Peff's suggestion to use > git_config_get_value() implied a bit of work beyond the simple textual > substitution of 'git_config_get_value' for > 'git_config_get_string_const'.) Yup, thanks for spelling it out. -- 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