Skip to content

Commit 152923b

Browse files
peffgitster
authored andcommitted
t5319: corrupt more bytes of the midx checksum
One of the tests in t5319 corrupts the checksum of the midx file by writing a single 0xff over the final byte, and then confirms that we detect the problem. This usually works fine, but would break if the actual checksum ended with that same byte already. It seems like this should happen in 1 out of 256 test runs, but it turns out to be less often in practice. The contents of the midx are mostly deterministic because it's based on the objects, and we remove most sources of randomness by setting GIT_COMMITTER_DATE, etc. However, there's still some randomness: some objects are duplicated between packs, and the midx must decide which to use, which can be based on timing. So very occasionally we can end up with a real 0xff byte, and the test fails. The most robust fix would be to read out the final byte and then change it to something else (e.g., adding 1 mod 256). But that's awkward to do in shell. Let's just blindly corrupt 10 bytes instead of 1, which reduces our chances of an accidental noop to 1 in 2^80. Reported-by: SZEDER Gábor <[email protected]> Signed-off-by: Jeff King <[email protected]> Reviewed-by: Taylor Blau <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 5fbd2fc commit 152923b

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

t/t5319-multi-pack-index.sh

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -419,8 +419,10 @@ test_expect_success 'corrupt MIDX is not reused' '
419419
'
420420

421421
test_expect_success 'verify incorrect checksum' '
422-
pos=$(($(wc -c <$objdir/pack/multi-pack-index) - 1)) &&
423-
corrupt_midx_and_verify $pos "\377" $objdir "incorrect checksum"
422+
pos=$(($(wc -c <$objdir/pack/multi-pack-index) - 10)) &&
423+
corrupt_midx_and_verify $pos \
424+
"\377\377\377\377\377\377\377\377\377\377" \
425+
$objdir "incorrect checksum"
424426
'
425427

426428
test_expect_success 'repack progress off for redirected stderr' '

0 commit comments

Comments
 (0)