From: Jeff King Date: Fri, 5 Nov 2021 09:01:31 +0000 (-0400) Subject: test_bitmap_hashes(): handle repository without bitmaps X-Git-Tag: v2.35.0-rc0~115^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=875da7f061bf141aa6bf2c34afad1cf16d179e17;p=thirdparty%2Fgit.git test_bitmap_hashes(): handle repository without bitmaps If prepare_bitmap_git() returns NULL (one easy-to-trigger cause being that the repository does not have bitmaps at all), then we'll segfault accessing bitmap_git->hashes: $ t/helper/test-tool bitmap dump-hashes Segmentation fault We should treat this the same as a repository with bitmaps but no name-hashes, and quietly produce an empty output. The later call to free_bitmap_index() in the cleanup label is OK, as it treats a NULL pointer as a noop. This isn't a big deal in practice, as this function is intended for and used only by test-tool. It's probably worth fixing to avoid confusion, but not worth adding coverage for this to the test suite. Signed-off-by: Jeff King Signed-off-by: Junio C Hamano --- diff --git a/pack-bitmap.c b/pack-bitmap.c index f47a0a7db4..b37a3c0743 100644 --- a/pack-bitmap.c +++ b/pack-bitmap.c @@ -1748,7 +1748,7 @@ int test_bitmap_hashes(struct repository *r) struct object_id oid; uint32_t i, index_pos; - if (!bitmap_git->hashes) + if (!bitmap_git || !bitmap_git->hashes) goto cleanup; for (i = 0; i < bitmap_num_objects(bitmap_git); i++) {