]> git.ipfire.org Git - thirdparty/git.git/commitdiff
pretty.c: make git_pretty_formats_config return -1 on git_config_string failure
authorTanay Abhra <tanayabh@gmail.com>
Mon, 4 Aug 2014 14:41:15 +0000 (07:41 -0700)
committerJunio C Hamano <gitster@pobox.com>
Mon, 4 Aug 2014 19:12:25 +0000 (12:12 -0700)
`git_pretty_formats_config()` continues without checking git_config_string's
return value which can lead to a SEGFAULT. Instead return -1 when
git_config_string fails signalling `git_config()` to die printing the location
of the erroneous variable.

Signed-off-by: Tanay Abhra <tanayabh@gmail.com>
Reviewed-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
pretty.c

index f64ff9a10c212df35ef2b31803a7bec78ff156ba..d3c2224de61a8c520e37e40dcffae1bd1edc7bf7 100644 (file)
--- a/pretty.c
+++ b/pretty.c
@@ -66,7 +66,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;
+
        if (starts_with(fmt, "format:") || starts_with(fmt, "tformat:")) {
                commit_format->is_tformat = fmt[0] == 't';
                fmt = strchr(fmt, ':') + 1;