Re: [PATCH] pretty.c: make git_pretty_formats_config return -1 on git_config_string failure
- From
Matthieu Moy <matthieu.moy@grenoble-inp.fr>
- Date
- Aug 4, 2014, 15:45 UTC
- Message-ID
- <vpqmwbki7h3.fsf@anie.imag.fr>
- In-Reply-To
- <1407163275-3006-1-git-send-email-tanayabh@gmail.com>
Tanay Abhra <tanayabh@gmail.com> writes:
> `git_pretty_formats_config()` continues without checking git_config_string's > return value which can lead to a SEGFAULT.
Indeed, without the patch:
$ git -c pretty.my= log --pretty=my error: Missing value for 'pretty.my' zsh: segmentation fault git -c pretty.my= log --pretty=my
Show 12 quoted lines
> diff --git a/pretty.c b/pretty.c > index 3a1da6f..72dbf55 100644 > --- a/pretty.c > +++ b/pretty.c > @@ -65,7 +65,9 @@ static int git_pretty_formats_config(const char *var, const char *value, void *c > > commit_format->name = xstrdup(name); > commit_format->format = CMIT_FMT_USERFORMAT; > - git_config_string(&fmt, var, value); > + if (git_config_string(&fmt, var, value)) > + return -1; > +
Ack-ed-by: Matthieu Moy <Matthieu.Moy@imag.fr>
My first thought reading this was "why not rewrite using non-callback API?", but this particular call to git_config needs to iterate over config keys anyway.
-- Matthieu Moy http://www-verimag.imag.fr/~moy/