Skip to content

Commit

Permalink
read-tree: add tests for confusing paths like ".." and ".git"
Browse files Browse the repository at this point in the history
We should prevent nonsense paths from entering the index in
the first place, as they can cause confusing results if they
are ever checked out into the working tree. We already do
so, but we never tested it.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Jeff King authored and Junio C Hamano committed Dec 17, 2014
1 parent 4616918 commit 96b50cc
Showing 1 changed file with 32 additions and 0 deletions.
32 changes: 32 additions & 0 deletions t/t1014-read-tree-confusing.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#!/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})
'

while read path; do
test_expect_success "reject $path 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 $path 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
EOF

test_done

0 comments on commit 96b50cc

Please sign in to comment.