From 5f4c7ce638b90b2e970d4a6c7401ac728eee1757 Mon Sep 17 00:00:00 2001 From: TapTap Date: Sun, 6 Sep 2026 22:09:25 +0200 Subject: [PATCH] fix: free walker-test root path after cleanup (ASan leak) make_walk_root() roots were removed from disk but never freed, leaking under the address/valgrind sanitizer jobs. --- tests/test_shared_utils.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/test_shared_utils.c b/tests/test_shared_utils.c index a7bdd40..b276f9d 100644 --- a/tests/test_shared_utils.c +++ b/tests/test_shared_utils.c @@ -144,6 +144,7 @@ static void test_walker_removes_extras_keeps_manifest_and_protected() { EXPECT_TRUE(deleted >= 2); array_list_delete(manifest); remove_walk_tree(root); + free(root); } static void test_walker_max_delete_exceeded_deletes_nothing() { @@ -164,6 +165,7 @@ static void test_walker_max_delete_exceeded_deletes_nothing() { EXPECT_TRUE(file_exists(root, "c.txt")); array_list_delete(manifest); remove_walk_tree(root); + free(root); } static void test_walker_max_delete_exact_bound_deletes() { @@ -182,6 +184,7 @@ static void test_walker_max_delete_exact_bound_deletes() { EXPECT_FALSE(file_exists(root, "b.txt")); array_list_delete(manifest); remove_walk_tree(root); + free(root); } static void test_walker_unlimited_deletes_all() { @@ -199,6 +202,7 @@ static void test_walker_unlimited_deletes_all() { EXPECT_FALSE(dir_exists(root, "emptydir")); array_list_delete(manifest); remove_walk_tree(root); + free(root); } typedef struct {