]> git.ipfire.org Git - thirdparty/git.git/commitdiff
Merge branch 'maint'
authorJunio C Hamano <gitster@pobox.com>
Tue, 22 Dec 2009 20:32:39 +0000 (12:32 -0800)
committerJunio C Hamano <gitster@pobox.com>
Tue, 22 Dec 2009 20:32:39 +0000 (12:32 -0800)
* maint:
  Prevent git blame from segfaulting on a missing author name

1  2 
builtin-blame.c

diff --combined builtin-blame.c
index d4e25a595dadba43223e84b20759ab49343aa33a,98e818ce6a63b352182b428b49464596d37a0617..6408ec8ee6805fc42eb5e5dc52be6463d62128bf
@@@ -1305,6 -1305,7 +1305,7 @@@ static void get_ac_line(const char *inb
        error_out:
                /* Ugh */
                *tz = "(unknown)";
+               strcpy(person, *tz);
                strcpy(mail, *tz);
                *time = 0;
                return;
        tmp = person;
        tmp += len;
        *tmp = 0;
-       while (*tmp != ' ')
+       while (person < tmp && *tmp != ' ')
                tmp--;
+       if (tmp <= person)
+               goto error_out;
        *tz = tmp+1;
        tzlen = (person+len)-(tmp+1);
  
        *tmp = 0;
-       while (*tmp != ' ')
+       while (person < tmp && *tmp != ' ')
                tmp--;
+       if (tmp <= person)
+               goto error_out;
        *time = strtoul(tmp, NULL, 10);
        timepos = tmp;
  
        *tmp = 0;
-       while (*tmp != ' ')
+       while (person < tmp && *tmp != ' ')
                tmp--;
+       if (tmp <= person)
+               return;
        mailpos = tmp + 1;
        *tmp = 0;
        maillen = timepos - tmp;
@@@ -2358,7 -2365,6 +2365,7 @@@ parse_done
                        die_errno("cannot stat path '%s'", path);
        }
  
 +      revs.disable_stdin = 1;
        setup_revisions(argc, argv, &revs, NULL);
        memset(&sb, 0, sizeof(sb));