]> git.ipfire.org Git - thirdparty/git.git/commitdiff
pack-check: convert "internal error" die to a BUG()
authorJeff King <peff@peff.net>
Mon, 24 Feb 2020 04:33:18 +0000 (23:33 -0500)
committerJunio C Hamano <gitster@pobox.com>
Mon, 24 Feb 2020 20:55:53 +0000 (12:55 -0800)
If we fail to load the oid from the index of a packfile, we'll die()
with an "internal error". But this should never happen: we'd fail here
only if the idx needed to be lazily opened (but we've already opened it)
or if we asked for an out-of-range index (but we're iterating using the
same count that we'd check the range against). A corrupted index might
have a bogus count (e.g., too large for its size), but we'd have
complained and aborted already when opening the index initially.

While we're here, we can add a few details so that if this bug ever
_does_ trigger, we'll have a bit more information.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
pack-check.c

index e4ef71c67393f0c7a24eff6bc6aa32c938cec4d9..39196ecfbc5046c4f113100b6d09bf1bb68c5460 100644 (file)
@@ -99,7 +99,8 @@ static int verify_packfile(struct repository *r,
        for (i = 0; i < nr_objects; i++) {
                entries[i].oid.hash = nth_packed_object_sha1(p, i);
                if (!entries[i].oid.hash)
-                       die("internal error pack-check nth-packed-object");
+                       BUG("unable to get oid of object %lu from %s",
+                           (unsigned long)i, p->pack_name);
                entries[i].offset = nth_packed_object_offset(p, i);
                entries[i].nr = i;
        }