Subject: [PATCH v2] t7450: inspect the correct path a broken code would write to

From: "chenjianhu via GitGitGadget" <[email-masked]>
Date: Thu, 31 Jul 2025 03:49:40 +0000

From: chenjianhu <[email-masked]>

Prior to 05e9cd64 (config: quote values containing CR character,
2025-05-19), a repository can trick "clone --recurse-submodules"
into running a post-checkout hook shipped with the project.  The
test was written to make sure the trick would no longer run the
hook with the fix in the commit.

However, the test did not check for the path the hook would
create; correct the path to the expected one if the bug were
still with us.

Signed-off-by: chenjianhu <[email-masked]>
---
    modify the “foo" file path to "$PWD/bad-clone/sub/foo".
    
    cc: "Kristoffer Haugsbakk" [email-masked] cc: Justin
    Tobler [email-masked]

Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-2022%2Fcjhxmx%2Fcjhxmx-git-test-v2
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-2022/cjhxmx/cjhxmx-git-test-v2
Pull-Request: https://github.com/git/git/pull/2022

Range-diff vs v1:

 1:  c2d1d8fe884 ! 1:  6434587a075 modify the “foo" file path to "$PWD/bad-clone/sub/foo".
     @@
       ## Metadata ##
     -Author: 陈建虎 <[email-masked]>
     +Author: chenjianhu <[email-masked]>
      
       ## Commit message ##
     -    modify the “foo" file path to "$PWD/bad-clone/sub/foo".
     +    t7450: inspect the correct path a broken code would write to
      
     -    In the t7450-bad-git-dotfiles.sh, when post-checkout
     -    is executed, the actual path where the foo file
     -    is created should be "$PWD/bad-clone/sub/foo".
     +    Prior to 05e9cd64 (config: quote values containing CR character,
     +    2025-05-19), a repository can trick "clone --recurse-submodules"
     +    into running a post-checkout hook shipped with the project.  The
     +    test was written to make sure the trick would no longer run the
     +    hook with the fix in the commit.
     +
     +    However, the test did not check for the path the hook would
     +    create; correct the path to the expected one if the bug were
     +    still with us.
      
          Signed-off-by: chenjianhu <[email-masked]>

 t/t7450-bad-git-dotfiles.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/t/t7450-bad-git-dotfiles.sh b/t/t7450-bad-git-dotfiles.sh
index 14b5743b962..f512eed278c 100755
--- a/t/t7450-bad-git-dotfiles.sh
+++ b/t/t7450-bad-git-dotfiles.sh
@@ -401,7 +401,7 @@ test_expect_success SYMLINKS,!WINDOWS,!MINGW 'submodule must not checkout into d
 	git -C repo commit -m submodule &&
 
 	git -c protocol.file.allow=always clone --recurse-submodules repo bad-clone &&
-	! test -f "$PWD/foo" &&
+	! test -f "$PWD/bad-clone/sub/foo" &&
 	test -f $(printf "bad-clone/sub\r/post-checkout")
 '

base-commit: e813a0200a7121b97fec535f0d0b460b0a33356c
-- 
gitgitgadget