Skip to content

Commit

Permalink
Merge branch 'maint'
Browse files Browse the repository at this point in the history
* maint:
  Prevent git blame from segfaulting on a missing author name
  • Loading branch information
Junio C Hamano committed Dec 22, 2009
2 parents 0fe1975 + c8cba79 commit 129a5a6
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 3 deletions.
13 changes: 10 additions & 3 deletions builtin-blame.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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;
Expand Down
13 changes: 13 additions & 0 deletions t/t8003-blame.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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

0 comments on commit 129a5a6

Please sign in to comment.