1
0
mirror of https://github.com/git/git.git synced 2024-09-28 16:13:01 +02:00

Merge branch 'maint'

* maint:
  Prevent git blame from segfaulting on a missing author name
This commit is contained in:
Junio C Hamano 2009-12-22 12:32:39 -08:00
commit 129a5a6dea
2 changed files with 23 additions and 3 deletions

@ -1305,6 +1305,7 @@ static void get_ac_line(const char *inbuf, const char *what,
error_out:
/* Ugh */
*tz = "(unknown)";
strcpy(person, *tz);
strcpy(mail, *tz);
*time = 0;
return;
@ -1314,20 +1315,26 @@ static void get_ac_line(const char *inbuf, const char *what,
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;

@ -144,4 +144,17 @@ test_expect_success 'blame path that used to be a directory' '
git blame HEAD^.. -- path
'
test_expect_success 'blame to a commit with no author name' '
TREE=`git rev-parse HEAD:`
cat >badcommit <<EOF
tree $TREE
author <noname> 1234567890 +0000
committer David Reiss <dreiss@facebook.com> 1234567890 +0000
some message
EOF
COMMIT=`git hash-object -t commit -w badcommit`
git --no-pager blame $COMMIT -- uno >/dev/null
'
test_done