From: Junio C Hamano Date: Tue, 22 Dec 2009 20:32:39 +0000 (-0800) Subject: Merge branch 'maint' X-Git-Tag: v1.6.6~3 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/129a5a6deacfe6ffb32291fcd96e0d1567f780b2?ds=inline;hp=-c Merge branch 'maint' * maint: Prevent git blame from segfaulting on a missing author name --- 129a5a6deacfe6ffb32291fcd96e0d1567f780b2 diff --combined builtin-blame.c index d4e25a595d,98e818ce6a..6408ec8ee6 --- a/builtin-blame.c +++ b/builtin-blame.c @@@ -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; @@@ -1314,20 -1315,26 +1315,26 @@@ 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));