Skip to content

Commit dc156bc

Browse files
Martin Ågrengitster
authored andcommitted
t1450: fix quoting of NUL byte when corrupting pack
We use printf '\0' to generate a NUL byte which we then `dd` into the packfile to ensure that we modify the first byte of the first object, thereby (probabilistically) invalidating the checksum. Except the single quotes we're using are interpreted to match with the ones we enclose the whole test in. So we actually execute printf \0 and end up injecting the ASCII code for "0", 0x30, instead. The comment right above this `printf` invocation says that "at least one of [the type bits] is not zero, so setting the first byte to 0 is sufficient". Substituting "0x30" for "0" in that comment won't do: we'd need to reason about which bits go where and just what the packfile looks like that we're modifying in this test. Let's avoid all of that by actually executing printf "\0" to generate a NUL byte, as intended. Signed-off-by: Martin Ågren <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent b3d7a52 commit dc156bc

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

t/t1450-fsck.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -701,7 +701,7 @@ test_expect_success 'fsck fails on corrupt packfile' '
701701
# at least one of which is not zero, so setting the first byte to 0 is
702702
# sufficient.)
703703
chmod a+w .git/objects/pack/pack-$pack.pack &&
704-
printf '\0' | dd of=.git/objects/pack/pack-$pack.pack bs=1 conv=notrunc seek=12 &&
704+
printf "\0" | dd of=.git/objects/pack/pack-$pack.pack bs=1 conv=notrunc seek=12 &&
705705
706706
test_when_finished "rm -f .git/objects/pack/pack-$pack.*" &&
707707
remove_object $hsh &&

0 commit comments

Comments
 (0)