Johannes Schindelin <Johannes.Schindelin@gmx.de> writes: > The test case corrupts a pack, and then also the index of that pack, by > writing "0" at certain offsets, and then tests if git-verify-pack fails. These certain offsets are: . byte 2 in pack This corrupts PACK_SIGNATURE ("A" in "PACK"). . byte 7 in pack This corrupts PACK_VERSION ("\002" in "\0\0\0\002"). . byte 12 in pack This corrupts the type/size byte of whatever the first object happens to be (the type/size byte has non-zero upper nibble). . byte 1200 in idx that is currently 1208 bytes long. This tries to corrupt the checksum of the index file itself, You are right about the last one; this location has 1/256 chance of validly being 0, and making the set of objects to be packed constant is one way to fix it. More appropriate way would be to measure how long the .idx file is, and corrupt the last 20 bytes; I was too lazy. -- >8 -- diff --git a/t/t5300-pack-object.sh b/t/t5300-pack-object.sh index 7dfb1ab..dd719bb 100755 --- a/t/t5300-pack-object.sh +++ b/t/t5300-pack-object.sh @@ -163,8 +163,10 @@ test_expect_success \ else :; fi && + l=`wc -c <test-3.idx` && + l=`expr "$l" - 20` && cp test-1-${packname_1}.pack test-3.pack && - dd if=/dev/zero of=test-3.idx count=1 bs=1 conv=notrunc seek=1200 && + dd if=/dev/zero of=test-3.idx count=20 bs=1 conv=notrunc seek=$l && if git-verify-pack test-3.pack then false else :; - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.htmlReceived on Tue Dec 27 13:11:08 2005
This archive was generated by hypermail 2.1.8 : 2005-12-27 13:11:17 EST