test-tool {dump,scrap}-cache-tree: fix memory leaks
Fix memory leaks in two test-tools used by t0090-cache-tree.sh. As a result we can mark the test as passing with SANITIZE=leak using "TEST_PASSES_SANITIZE_LEAK=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:

committed by
Junio C Hamano

parent
e287a5b0a4
commit
9afa46d4a6
@ -59,11 +59,16 @@ int cmd__dump_cache_tree(int ac, const char **av)
|
|||||||
{
|
{
|
||||||
struct index_state istate;
|
struct index_state istate;
|
||||||
struct cache_tree *another = cache_tree();
|
struct cache_tree *another = cache_tree();
|
||||||
|
int ret;
|
||||||
|
|
||||||
setup_git_directory();
|
setup_git_directory();
|
||||||
if (read_cache() < 0)
|
if (read_cache() < 0)
|
||||||
die("unable to read index file");
|
die("unable to read index file");
|
||||||
istate = the_index;
|
istate = the_index;
|
||||||
istate.cache_tree = another;
|
istate.cache_tree = another;
|
||||||
cache_tree_update(&istate, WRITE_TREE_DRY_RUN);
|
cache_tree_update(&istate, WRITE_TREE_DRY_RUN);
|
||||||
return dump_cache_tree(active_cache_tree, another, "");
|
ret = dump_cache_tree(active_cache_tree, another, "");
|
||||||
|
cache_tree_free(&another);
|
||||||
|
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -12,6 +12,7 @@ int cmd__scrap_cache_tree(int ac, const char **av)
|
|||||||
hold_locked_index(&index_lock, LOCK_DIE_ON_ERROR);
|
hold_locked_index(&index_lock, LOCK_DIE_ON_ERROR);
|
||||||
if (read_cache() < 0)
|
if (read_cache() < 0)
|
||||||
die("unable to read index file");
|
die("unable to read index file");
|
||||||
|
cache_tree_free(&active_cache_tree);
|
||||||
active_cache_tree = NULL;
|
active_cache_tree = NULL;
|
||||||
if (write_locked_index(&the_index, &index_lock, COMMIT_LOCK))
|
if (write_locked_index(&the_index, &index_lock, COMMIT_LOCK))
|
||||||
die("unable to write index file");
|
die("unable to write index file");
|
||||||
|
@ -5,6 +5,8 @@ test_description="Test whether cache-tree is properly updated
|
|||||||
Tests whether various commands properly update and/or rewrite the
|
Tests whether various commands properly update and/or rewrite the
|
||||||
cache-tree extension.
|
cache-tree extension.
|
||||||
"
|
"
|
||||||
|
|
||||||
|
TEST_PASSES_SANITIZE_LEAK=true
|
||||||
. ./test-lib.sh
|
. ./test-lib.sh
|
||||||
|
|
||||||
cmp_cache_tree () {
|
cmp_cache_tree () {
|
||||||
|
Reference in New Issue
Block a user