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

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

From
CGchenjianhu via GitGitGadget <gitgitgadget@gmail.com>
Date
Jul 31, 2025, 03:49 UTC
Message-ID
<pull.2022.v2.git.git.1753933780883.gitgitgadget@gmail.com>
In-Reply-To
<pull.2022.git.git.1753860300588.gitgitgadget@gmail.com>
From: chenjianhu <chenjianh@kylinos.cn>

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 <chenjianhu@kylinos.cn>
---
    modify the “foo" file path to "$PWD/bad-clone/sub/foo".
    
    cc: "Kristoffer Haugsbakk" kristofferhaugsbakk@fastmail.com cc: Justin
    Tobler jltobler@gmail.com
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: 陈建虎 <chenjianhu@kylinos.cn>
     +Author: chenjianhu <chenjianh@kylinos.cn>
      
       ## 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 <chenjianhu@kylinos.cn>
      
 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
Previous: Justin ToblerNext: Junio C Hamano
Message 6 of 8 in “modify the “foo" file path to "$PWD/bad-clone/sub/foo".”
  1. modify the “foo" file path to "$PWD/bad-clone/sub/foo".陈建虎 via GitGitGadget, Jul 30, 2025
  2. Kristoffer HaugsbakkJul 30, 2025
  3. Junio C HamanoJul 30, 2025
  4. Junio C HamanoJul 30, 2025
  5. Justin ToblerJul 30, 2025
  6. t7450: inspect the correct path a broken code would write tochenjianhu via GitGitGadget, Jul 31, 2025
  7. Junio C HamanoJul 31, 2025
  8. Justin ToblerAug 1, 2025

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.