From 92d4c85d248728b1937d01fdd088173753c6994d Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Tue, 3 May 2005 07:57:56 -0700 Subject: [PATCH] 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 Signed-off-by: Linus Torvalds --- fsck-cache.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/fsck-cache.c b/fsck-cache.c index 637aededbd..fb0d82f332 100644 --- a/fsck-cache.c +++ b/fsck-cache.c @@ -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; }