diff options
author | Jeff King <peff@peff.net> | 2012-07-28 11:06:29 -0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2012-07-29 15:14:08 -0700 |
commit | c479d14a80743b1cb86d77695607f4c81f7d8797 (patch) | |
tree | 3da17f344439eceec6dbf8c8bc13fc923a8603e6 /t/t1450-fsck.sh | |
parent | 4337b5856f88f18da47c176e3cbc95a35627044c (diff) | |
download | git-c479d14a80743b1cb86d77695607f4c81f7d8797.tar.gz |
fsck: detect null sha1 in tree entries
Short of somebody happening to beat the 1 in 2^160 odds of
actually generating content that hashes to the null sha1, we
should never see this value in a tree entry. So let's have
fsck warn if it it seen.
As in the previous commit, we test both blob and submodule
entries to future-proof the test suite against the
implementation depending on connectivity to notice the
error.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t1450-fsck.sh')
-rwxr-xr-x | t/t1450-fsck.sh | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/t/t1450-fsck.sh b/t/t1450-fsck.sh index 5b8ebd8053..5e36cc71b4 100755 --- a/t/t1450-fsck.sh +++ b/t/t1450-fsck.sh @@ -217,4 +217,30 @@ test_expect_success 'rev-list --verify-objects with bad sha1' ' grep -q "error: sha1 mismatch 63ffffffffffffffffffffffffffffffffffffff" out ' +_bz='\0' +_bz5="$_bz$_bz$_bz$_bz$_bz" +_bz20="$_bz5$_bz5$_bz5$_bz5" + +test_expect_success 'fsck notices blob entry pointing to null sha1' ' + (git init null-blob && + cd null-blob && + sha=$(printf "100644 file$_bz$_bz20" | + git hash-object -w --stdin -t tree) && + git fsck 2>out && + cat out && + grep "warning.*null sha1" out + ) +' + +test_expect_success 'fsck notices submodule entry pointing to null sha1' ' + (git init null-commit && + cd null-commit && + sha=$(printf "160000 submodule$_bz$_bz20" | + git hash-object -w --stdin -t tree) && + git fsck 2>out && + cat out && + grep "warning.*null sha1" out + ) +' + test_done |