From a3f9617bcf8154cee6ffbf873580788791135a03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Mart=C3=ADn=20Nieto?= Date: Tue, 3 May 2022 14:09:40 +0200 Subject: midx: do not verify the checksum on load This is something we only want to do during explicit verification rather than on every load. Verifying does not seem like a big deal when we're running with test workloads but once your `multi-pack-index` reaches gigabytes, we spend more time hashing this than doing any work. --- src/libgit2/midx.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/libgit2/midx.c b/src/libgit2/midx.c index d4e53c421..c2e643fb5 100644 --- a/src/libgit2/midx.c +++ b/src/libgit2/midx.c @@ -179,7 +179,6 @@ int git_midx_parse( uint32_t i; off64_t last_chunk_offset, chunk_offset, trailer_offset; size_t checksum_size; - unsigned char checksum[GIT_HASH_SHA1_SIZE]; int error; struct git_midx_chunk chunk_packfile_names = {0}, chunk_oid_fanout = {0}, @@ -217,11 +216,6 @@ int git_midx_parse( return midx_error("wrong index size"); memcpy(idx->checksum, data + trailer_offset, checksum_size); - if (git_hash_buf(checksum, data, (size_t)trailer_offset, GIT_HASH_ALGORITHM_SHA1) < 0) - return midx_error("could not calculate signature"); - if (memcmp(checksum, idx->checksum, checksum_size) != 0) - return midx_error("index signature mismatch"); - chunk_hdr = data + sizeof(struct git_midx_header); last_chunk = NULL; for (i = 0; i < hdr->chunks; ++i, chunk_hdr += 12) { -- cgit v1.2.1