From: Petr Baudis Date: Fri, 20 May 2005 08:50:47 GMT Subject: Re: [PATCH] Fix git-fsck-cache segfault on invalid tag Message-ID: <20050520085047.GA27787@pasky.ji.cz> In-Reply-To: <428D8B19.4070605@tuxrocks.com> Dear diary, on Fri, May 20, 2005 at 09:00:41AM CEST, I got a letter where Frank Sorenson told me that... > git-fsck-cache will segfault if a tag contains a non-existent sha1. This > patch fixes fsck-cache to report the invalid tag and not die. Oh. I've fixed this too but didn't even get to commit it yet. :-) > Index: fsck-cache.c > =================================================================== > --- ca5fef50fb68a3afbb35e1a48ac622f7a964f021/fsck-cache.c (mode:100644) > +++ ac5d65a040c22194ddcd0706dc5f0b8bb52aef65/fsck-cache.c (mode:100644) > @@ -315,6 +315,10 @@ > return; > > obj = lookup_object(sha1); > + if (!obj) { > + fprintf(stderr, "invalid tag %s - %s\n", path, hexname); > + return; > + } > obj->used = 1; > mark_reachable(obj, REACHABLE); > } My error message is error("%s: invalid sha1 pointer %.40s", path, hexname); I'd prefer that (at least use the error() call). The .40 is there since it has a newline on its own. -- Petr "Pasky" Baudis Stuff: http://pasky.or.cz/ C++: an octopus made by nailing extra legs onto a dog. -- Steve Taylor