Skip to content

Commit

Permalink
Merge branch 'jn/maint-fast-import-empty-ls' into maint
Browse files Browse the repository at this point in the history
* jn/maint-fast-import-empty-ls:
  fast-import: don't allow 'ls' of path with empty components
  fast-import: leakfix for 'ls' of dirty trees
  • Loading branch information
Junio C Hamano committed Mar 26, 2012
2 parents bda02eb + 178e1de commit 79efeae
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 0 deletions.
4 changes: 4 additions & 0 deletions fast-import.c
Original file line number Diff line number Diff line change
Expand Up @@ -1641,6 +1641,8 @@ static int tree_content_get(
n = slash1 - p;
else
n = strlen(p);
if (!n)
die("Empty path component found in input");

if (!root->tree)
load_tree(root);
Expand Down Expand Up @@ -3028,6 +3030,8 @@ static void parse_ls(struct branch *b)
store_tree(&leaf);

print_ls(leaf.versions[1].mode, leaf.versions[1].sha1, p);
if (leaf.tree)
release_tree_content_recursive(leaf.tree);
if (!b || root != &b->branch_tree)
release_tree_entry(root);
}
Expand Down
39 changes: 39 additions & 0 deletions t/t9300-fast-import.sh
Original file line number Diff line number Diff line change
Expand Up @@ -1306,6 +1306,45 @@ test_expect_success \
M 040000 $subdir file3/
INPUT_END'

test_expect_success \
'N: reject foo/ syntax in copy source' \
'test_must_fail git fast-import <<-INPUT_END
commit refs/heads/N5C
committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE
data <<COMMIT
copy with invalid syntax
COMMIT
from refs/heads/branch^0
C file2/ file3
INPUT_END'

test_expect_success \
'N: reject foo/ syntax in rename source' \
'test_must_fail git fast-import <<-INPUT_END
commit refs/heads/N5D
committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE
data <<COMMIT
rename with invalid syntax
COMMIT
from refs/heads/branch^0
R file2/ file3
INPUT_END'

test_expect_success \
'N: reject foo/ syntax in ls argument' \
'test_must_fail git fast-import <<-INPUT_END
commit refs/heads/N5E
committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE
data <<COMMIT
copy with invalid syntax
COMMIT
from refs/heads/branch^0
ls "file2/"
INPUT_END'

test_expect_success \
'N: copy to root by id and modify' \
'echo "hello, world" >expect.foo &&
Expand Down

0 comments on commit 79efeae

Please sign in to comment.