Thread (1 message) 1 message, 1 author, 2016-06-15

Re: [PATCHv3 1/4] notes: don't leak memory in git_config_get_notes_strategy

From: Junio C Hamano <hidden>
Date: 2016-06-15 23:09:09

Eric Sunshine [off-list ref] writes:
On Thu, Mar 31, 2016 at 2:04 PM, Stefan Beller [off-list ref] wrote:
quoted
`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 <redacted>
---
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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help