Merge branch 'jn/maint-fast-import-empty-ls' into maint
* 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
This commit is contained in:
commit
79efeae69d
@ -1641,6 +1641,8 @@ static int tree_content_get(
|
|||||||
n = slash1 - p;
|
n = slash1 - p;
|
||||||
else
|
else
|
||||||
n = strlen(p);
|
n = strlen(p);
|
||||||
|
if (!n)
|
||||||
|
die("Empty path component found in input");
|
||||||
|
|
||||||
if (!root->tree)
|
if (!root->tree)
|
||||||
load_tree(root);
|
load_tree(root);
|
||||||
@ -3028,6 +3030,8 @@ static void parse_ls(struct branch *b)
|
|||||||
store_tree(&leaf);
|
store_tree(&leaf);
|
||||||
|
|
||||||
print_ls(leaf.versions[1].mode, leaf.versions[1].sha1, p);
|
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)
|
if (!b || root != &b->branch_tree)
|
||||||
release_tree_entry(root);
|
release_tree_entry(root);
|
||||||
}
|
}
|
||||||
|
@ -1306,6 +1306,45 @@ test_expect_success \
|
|||||||
M 040000 $subdir file3/
|
M 040000 $subdir file3/
|
||||||
INPUT_END'
|
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 \
|
test_expect_success \
|
||||||
'N: copy to root by id and modify' \
|
'N: copy to root by id and modify' \
|
||||||
'echo "hello, world" >expect.foo &&
|
'echo "hello, world" >expect.foo &&
|
||||||
|
Loading…
Reference in New Issue
Block a user