ls-files: add missing string_list_clear()
Fix a memory leak that's been here ever since 72aeb18772d (clean.c, ls-files.c: respect encapsulation of exclude_list_groups, 2013-01-16), we dup'd the argument in option_parse_exclude(), but never freed the string_list. This makes almost all of t3001-ls-files-others-exclude.sh pass (it had a lot of failures before). Let's mark it as passing with TEST_PASSES_SANITIZE_LEAK=true, and then exclude the tests that still failed with a !SANITIZE_LEAK prerequisite check until we fix those leaks. We can still see the failed tests under GIT_TEST_FAIL_PREREQS=true. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
eab4ac6a23
commit
272f0a574d
@ -781,6 +781,7 @@ int cmd_ls_files(int argc, const char **argv, const char *cmd_prefix)
|
|||||||
ret = 1;
|
ret = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
string_list_clear(&exclude_list, 0);
|
||||||
dir_clear(&dir);
|
dir_clear(&dir);
|
||||||
free(max_prefix);
|
free(max_prefix);
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -8,6 +8,7 @@ test_description='git ls-files --others --exclude
|
|||||||
This test runs git ls-files --others and tests --exclude patterns.
|
This test runs git ls-files --others and tests --exclude patterns.
|
||||||
'
|
'
|
||||||
|
|
||||||
|
TEST_PASSES_SANITIZE_LEAK=true
|
||||||
. ./test-lib.sh
|
. ./test-lib.sh
|
||||||
|
|
||||||
rm -fr one three
|
rm -fr one three
|
||||||
@ -102,7 +103,7 @@ test_expect_success \
|
|||||||
>output &&
|
>output &&
|
||||||
test_cmp expect output'
|
test_cmp expect output'
|
||||||
|
|
||||||
test_expect_success 'restore gitignore' '
|
test_expect_success !SANITIZE_LEAK 'restore gitignore' '
|
||||||
git checkout --ignore-skip-worktree-bits $allignores &&
|
git checkout --ignore-skip-worktree-bits $allignores &&
|
||||||
rm .git/index
|
rm .git/index
|
||||||
'
|
'
|
||||||
@ -125,7 +126,7 @@ cat > expect << EOF
|
|||||||
# three/
|
# three/
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
test_expect_success 'git status honors core.excludesfile' \
|
test_expect_success !SANITIZE_LEAK 'git status honors core.excludesfile' \
|
||||||
'test_cmp expect output'
|
'test_cmp expect output'
|
||||||
|
|
||||||
test_expect_success 'trailing slash in exclude allows directory match(1)' '
|
test_expect_success 'trailing slash in exclude allows directory match(1)' '
|
||||||
|
Loading…
x
Reference in New Issue
Block a user