Re: [PATCH 3/6] notes: don't leak memory in git_config_get_notes_strategy
- From
Eric Sunshine <sunshine@sunshineco.com>
- Date
- Mar 30, 2016, 01:11 UTC
- Message-ID
- <CAPig+cQxtFDY8kAx-UD_dYatTJJnx260CaY5Ke3yDOS666YEtA@mail.gmail.com>
- In-Reply-To
- <1459298333-21899-4-git-send-email-sbeller@google.com>
On Tue, Mar 29, 2016 at 8:38 PM, Stefan Beller <sbeller@google.com> wrote:
Show 13 quoted lines
> `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 <sbeller@google.com> > --- > diff --git a/builtin/notes.c b/builtin/notes.c > @@ -751,6 +751,7 @@ static int git_config_get_notes_strategy(const char *key, > if (parse_notes_merge_strategy(value, strategy)) > git_die_config(key, "unknown notes merge strategy %s", value); > > + free((void*)value);
I wonder if the intent would be clearer if you gave 'value' type 'char *' rather than 'const char *', and called git_config_get_string() rather than git_config_get_string_const().
> return 0; > }