summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Martín Nieto <carlosmn@github.com>2022-05-03 14:09:40 +0200
committerCarlos Martín Nieto <carlosmn@github.com>2022-05-03 14:09:40 +0200
commita3f9617bcf8154cee6ffbf873580788791135a03 (patch)
tree9fc3568ea14e74592742aaa4a1c8bd72da9a9251
parentbdab22384cc61d315005a65456a9f9563bb27c8f (diff)
downloadlibgit2-a3f9617bcf8154cee6ffbf873580788791135a03.tar.gz
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.
-rw-r--r--src/libgit2/midx.c6
1 files changed, 0 insertions, 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) {