fsck-cache: fix SIGSEGV on bad tag object

fsck_tag() failes to notice that the parsing of the tag may
have failed in the parse_object() call on the object that it
is tagging. 

Noticed by Junio.

Signed-off-by: Junio C Hamano <junkio@cox.net>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
Linus Torvalds 2005-05-03 07:57:56 -07:00
parent 54c26fb9d0
commit 92d4c85d24

View File

@ -133,14 +133,17 @@ static int fsck_commit(struct commit *commit)
static int fsck_tag(struct tag *tag)
{
struct object *tagged = tag->tagged;
if (!tagged) {
printf("bad object in tag %s\n", sha1_to_hex(tag->object.sha1));
return -1;
}
if (!show_tags)
return 0;
printf("tagged %s %s",
tag->tagged->type,
sha1_to_hex(tag->tagged->sha1));
printf(" (%s) in %s\n",
tag->tag, sha1_to_hex(tag->object.sha1));
printf("tagged %s %s", tagged->type, sha1_to_hex(tagged->sha1));
printf(" (%s) in %s\n", tag->tag, sha1_to_hex(tag->object.sha1));
return 0;
}