git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 1/2] t1450: add tests for NUL in headers of commits and tags

From
René Scharfe <l.s.r@web.de>
Date
Nov 19, 2015, 16:20 UTC
Message-ID
<564DF6BE.6020609@web.de>
Signed-off-by: Rene Scharfe <l.s.r@web.de>
---
 t/t1450-fsck.sh | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)
diff --git a/t/t1450-fsck.sh b/t/t1450-fsck.sh
index dc09797..6c96953 100755
--- a/t/t1450-fsck.sh
+++ b/t/t1450-fsck.sh
@@ -176,6 +176,18 @@ test_expect_success 'integer overflow in timestamps is reported' '
 	grep "error in commit $new.*integer overflow" out
 '
 
+test_expect_success 'commit with NUL in header' '
+	git cat-file commit HEAD >basis &&
+	sed "s/author ./author Q/" <basis | q_to_nul >commit-NUL-header &&
+	new=$(git hash-object -t commit -w --stdin <commit-NUL-header) &&
+	test_when_finished "remove_object $new" &&
+	git update-ref refs/heads/bogus "$new" &&
+	test_when_finished "git update-ref -d refs/heads/bogus" &&
+	test_must_fail git fsck 2>out &&
+	cat out &&
+	grep "error in commit $new.*unterminated header: NUL at offset" out
+'
+
 test_expect_success 'malformatted tree object' '
 	test_when_finished "git update-ref -d refs/tags/wrong" &&
 	test_when_finished "remove_object \$T" &&
@@ -276,6 +288,26 @@ test_expect_success 'tag with bad tagger' '
 	grep "error in tag .*: invalid author/committer" out
 '
 
+test_expect_failure 'tag with NUL in header' '
+	sha=$(git rev-parse HEAD) &&
+	q_to_nul >tag-NUL-header <<-EOF &&
+	object $sha
+	type commit
+	tag contains-Q-in-header
+	tagger T A Gger <tagger@example.com> 1234567890 -0000
+
+	This is an invalid tag.
+	EOF
+
+	tag=$(git hash-object --literally -t tag -w --stdin <tag-NUL-header) &&
+	test_when_finished "remove_object $tag" &&
+	echo $tag >.git/refs/tags/wrong &&
+	test_when_finished "git update-ref -d refs/tags/wrong" &&
+	test_must_fail git fsck --tags 2>out &&
+	cat out &&
+	grep "error in tag $tag.*unterminated header: NUL at offset" out
+'
+
 test_expect_success 'cleaned up' '
 	git fsck >actual 2>&1 &&
 	test_cmp empty actual
-- 
2.6.3
Next: René Scharfe
Message 1 of 14 in “t1450: add tests for NUL in headers of commits and tags”
  1. 1/2 t1450: add tests for NUL in headers of commits and tagsRené Scharfe, Nov 19, 2015
  2. 2/2 fsck: treat a NUL in a tag header as an errorRené Scharfe, Nov 19, 2015
  3. Jeff KingNov 20, 2015
  4. Johannes SchindelinNov 20, 2015
  5. Eric SunshineNov 19, 2015
  6. René ScharfeNov 19, 2015
  7. Jeff KingNov 20, 2015
  8. René ScharfeNov 20, 2015
  9. 3/2 test: factor out helper function test_must_containRené Scharfe, Nov 20, 2015
  10. Johannes SixtNov 21, 2015
  11. René ScharfeNov 21, 2015
  12. 4/2 test: use test_must_containRené Scharfe, Nov 20, 2015
  13. SZEDER GáborNov 21, 2015
  14. René ScharfeNov 21, 2015

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.