]> git.ipfire.org Git - thirdparty/git.git/commit - midx.c
midx: report checksum mismatches during 'verify'
authorTaylor Blau <me@ttaylorr.com>
Wed, 23 Jun 2021 18:39:15 +0000 (14:39 -0400)
committerJunio C Hamano <gitster@pobox.com>
Tue, 29 Jun 2021 03:36:17 +0000 (20:36 -0700)
commitf89ecf79888a48e0adf14d0e05c69ee09e853fd5
tree82c2f643bee70555b091ef54e52dd6330c524b50
parentec1e28ef9c30468d2e76e41c88a1611e63047f61
midx: report checksum mismatches during 'verify'

'git multi-pack-index verify' inspects the data in an existing MIDX for
correctness by checking that the recorded object offsets are correct,
and so on.

But it does not check that the file's trailing checksum matches the data
that it records. So, if an on-disk corruption happened to occur in the
final few bytes (and all other data was recorded correctly), we would:

  - get a clean result from 'git multi-pack-index verify', but
  - be unable to reuse the existing MIDX when writing a new one (since
    we now check for checksum mismatches before reusing a MIDX)

Teach the 'verify' sub-command to recognize corruption in the checksum
by calling midx_checksum_valid().

Suggested-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Taylor Blau <me@ttaylorr.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
midx.c
t/t5319-multi-pack-index.sh