[PATCH] fsck-cache segfaults on a tag referring to a missing object.
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:41:56
I do not understand the comment about ignoring tag reachability in check_connectivity(), but fsck_tag() fails to notice that a parsing of tag may have failed in the parse_object() call in fsck_sha1() before it is called, in which case it can get a tag object with NULL in the tagged field and segfault. Here is a patch to fix this. Signed-off-by: Junio C Hamano <redacted> --- P.S. Since this is probably more urgent than other fixes I've been bugging you about, I am sending this via e-mail, not as a GIT pull request, but I have a couple more update there, along with updated HEAD.
--- a/fsck-cache.c
+++ b/fsck-cache.c@@ -136,6 +136,12 @@ static int fsck_tag(struct tag *tag) if (!show_tags) return 0; + if (!tag->tagged) { + printf("bad referenced object in tag %s\n", + sha1_to_hex(tag->object.sha1)); + return 0; + } + printf("tagged %s %s", tag->tagged->type, sha1_to_hex(tag->tagged->sha1)); ----------------------------------------------------------------