summaryrefslogtreecommitdiff
path: root/pack-check.c
diff options
context:
space:
mode:
authorJeff King <peff@peff.net>2020-02-24 04:33:18 (GMT)
committerJunio C Hamano <gitster@pobox.com>2020-02-24 20:55:53 (GMT)
commite31c71083abef5dbe4b4112a1a1a24a90ce587f3 (patch)
treec2acdc349c4b72925f621c7a85c74f1017c78846 /pack-check.c
parent500e4f236606684467b0b34b86e319dfa40747c4 (diff)
downloadgit-e31c71083abef5dbe4b4112a1a1a24a90ce587f3.zip
git-e31c71083abef5dbe4b4112a1a1a24a90ce587f3.tar.gz
git-e31c71083abef5dbe4b4112a1a1a24a90ce587f3.tar.bz2
pack-check: convert "internal error" die to a BUG()
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>
Diffstat (limited to 'pack-check.c')
-rw-r--r--pack-check.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/pack-check.c b/pack-check.c
index e4ef71c..39196ec 100644
--- a/pack-check.c
+++ b/pack-check.c
@@ -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;
}