From d0f1a99cb231b8cd41cef4aee60763a46900287e Mon Sep 17 00:00:00 2001 From: Bryce Kwon Date: Sat, 7 Nov 2026 16:19:10 -1000 Subject: Check the empty author on every page it reaches The title claimed every page, but only the log, commit and atom pages were asked for. The commit now changes a file, since the patch page leaves out a commit with nothing to show, and its parent is read before the printf, where a failed rev-parse would have gone unnoticed. --- tests/t0301-security.sh | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/tests/t0301-security.sh b/tests/t0301-security.sh index 555eb89..95a31d5 100755 --- a/tests/t0301-security.sh +++ b/tests/t0301-security.sh @@ -370,8 +370,13 @@ test_expect_success 'set up the advisory fixtures' ' printf "x\n" >"\$(touch pwned).c" && git add -A && git commit -m names && - tree=$(git rev-parse HEAD^{tree}) && - printf "tree %s\nparent %s\n" "$tree" "$(git rev-parse HEAD)" >raw && + parent=$(git rev-parse HEAD) && + echo noname >noname.txt && + git add noname.txt && + tree=$(git write-tree) && + git rm -q --cached noname.txt && + rm noname.txt && + printf "tree %s\nparent %s\n" "$tree" "$parent" >raw && printf "author <> 1735689600 +0000\ncommitter <> 1735689600 +0000\n\nempty author\n" >>raw && cid=$(git hash-object --literally -t commit -w raw) && git update-ref refs/heads/noname "$cid" @@ -444,13 +449,21 @@ test_expect_success 'the about page serves nothing above the readme directory' ' ' test_expect_success 'a commit with an empty author renders everywhere' ' - cgit_rc cverc "url=cve/log/&h=noname" >tmp && - grep ">empty author" tmp && - cgit_rc cverc "url=cve/commit/&h=noname" >tmp && - grep "
empty author<" tmp && - cgit_rc cverc "url=cve/atom/&h=noname" >tmp && - grep "unknown" tmp && - ! grep "" tmp + cgit_ok cverc "url=cve/log/&h=noname" >tmp && + test_grep ">empty author" tmp && + cgit_ok cverc "url=cve/commit/&h=noname" >tmp && + test_grep "
empty author<" tmp && + for page in "" refs/ + do + cgit_ok cverc "url=cve/$page" >tmp && + test_grep "empty author" tmp || return 1 + done && + cgit_ok cverc "url=cve/patch/&h=noname" >tmp && + test_grep "^From: <>$" tmp && + test_grep "^Subject: empty author$" tmp && + cgit_ok cverc "url=cve/atom/&h=noname" >tmp && + test_grep "unknown" tmp && + test_grep ! "" tmp ' test_expect_success 'a percent sign without digits behind it is read as itself' ' -- cgit 2.12.1