-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'dotgit-case-maint-1.8.5' into maint-1.8.5
* dotgit-case-maint-1.8.5: fsck: complain about NTFS ".git" aliases in trees read-cache: optionally disallow NTFS .git variants path: add is_ntfs_dotgit() helper fsck: complain about HFS+ ".git" aliases in trees read-cache: optionally disallow HFS+ .git variants utf8: add is_hfs_dotgit() helper fsck: notice .git case-insensitively t1450: refactor ".", "..", and ".git" fsck tests verify_dotfile(): reject .git case-insensitively read-tree: add tests for confusing paths like ".." and ".git" unpack-trees: propagate errors adding entries to the index
- Loading branch information
Showing
14 changed files
with
261 additions
and
38 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
#!/bin/sh | ||
|
||
test_description='check that read-tree rejects confusing paths' | ||
. ./test-lib.sh | ||
|
||
test_expect_success 'create base tree' ' | ||
echo content >file && | ||
git add file && | ||
git commit -m base && | ||
blob=$(git rev-parse HEAD:file) && | ||
tree=$(git rev-parse HEAD^{tree}) | ||
' | ||
|
||
test_expect_success 'enable core.protectHFS for rejection tests' ' | ||
git config core.protectHFS true | ||
' | ||
|
||
test_expect_success 'enable core.protectNTFS for rejection tests' ' | ||
git config core.protectNTFS true | ||
' | ||
|
||
while read path pretty; do | ||
: ${pretty:=$path} | ||
case "$path" in | ||
*SPACE) | ||
path="${path%SPACE} " | ||
;; | ||
esac | ||
test_expect_success "reject $pretty at end of path" ' | ||
printf "100644 blob %s\t%s" "$blob" "$path" >tree && | ||
bogus=$(git mktree <tree) && | ||
test_must_fail git read-tree $bogus | ||
' | ||
|
||
test_expect_success "reject $pretty as subtree" ' | ||
printf "040000 tree %s\t%s" "$tree" "$path" >tree && | ||
bogus=$(git mktree <tree) && | ||
test_must_fail git read-tree $bogus | ||
' | ||
done <<-EOF | ||
. | ||
.. | ||
.git | ||
.GIT | ||
${u200c}.Git {u200c}.Git | ||
.gI${u200c}T .gI{u200c}T | ||
.GiT${u200c} .GiT{u200c} | ||
git~1 | ||
.git.SPACE .git.{space} | ||
.\\\\.GIT\\\\foobar backslashes | ||
.git\\\\foobar backslashes2 | ||
EOF | ||
|
||
test_expect_success 'utf-8 paths allowed with core.protectHFS off' ' | ||
test_when_finished "git read-tree HEAD" && | ||
test_config core.protectHFS false && | ||
printf "100644 blob %s\t%s" "$blob" ".gi${u200c}t" >tree && | ||
ok=$(git mktree <tree) && | ||
git read-tree $ok | ||
' | ||
|
||
test_done |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.