radix tree test suite: Fix leaks in regression2.c
authorMatthew Wilcox <mawilcox@microsoft.com>
Sun, 29 Jan 2017 06:52:55 +0000 (01:52 -0500)
committerMatthew Wilcox <mawilcox@microsoft.com>
Tue, 14 Feb 2017 02:44:07 +0000 (21:44 -0500)
None of the malloc'ed data structures were ever being freed.  Found with
-fsanitize=address.

Signed-off-by: Matthew Wilcox <mawilcox@microsoft.com>
Reviewed-by: Rehas Sachdeva <aquannie@gmail.com>
tools/testing/radix-tree/regression2.c

index a24d1be..42dd2a3 100644 (file)
@@ -103,7 +103,7 @@ void regression2_test(void)
 
        /* 4. */
        for (i = max_slots - 1; i >= 0; i--)
-               radix_tree_delete(&mt_tree, i);
+               free(radix_tree_delete(&mt_tree, i));
 
        /* 5. */
        // NOTE: start should not be 0 because radix_tree_gang_lookup_tag_slot
@@ -114,7 +114,9 @@ void regression2_test(void)
                PAGECACHE_TAG_TOWRITE);
 
        /* We remove all the remained nodes */
-       radix_tree_delete(&mt_tree, max_slots);
+       free(radix_tree_delete(&mt_tree, max_slots));
+
+       BUG_ON(!radix_tree_empty(&mt_tree));
 
        printv(1, "regression test 2, done\n");
 }