From c8bb0fac13c73eaa5f824eb44b9c6b61a722dbdb Mon Sep 17 00:00:00 2001 From: "Liam R. Howlett" Date: Thu, 3 Mar 2022 11:51:42 -0500 Subject: [PATCH] test_maple_tree: Fix mas_reuse_node() zeroing again. Signed-off-by: Liam R. Howlett --- lib/test_maple_tree.c | 63 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/lib/test_maple_tree.c b/lib/test_maple_tree.c index a9599bdb9dc9..b26d74c89ac8 100644 --- a/lib/test_maple_tree.c +++ b/lib/test_maple_tree.c @@ -37359,6 +37359,69 @@ static noinline void check_fuzzer(struct maple_tree *mt) mtree_test_load(mt, 0); // 0x1 mtree_destroy(mt); + /* + * 7. Previous fix was incomplete, fix mas_resuse_node() clearing of old + * data by overwriting it first - that way metadata is of no concern. + */ + mt_init_flags(mt, 0); + mtree_test_load(mt, 1); // (nil) + mtree_test_insert(mt, 102, (void *)0xcd); // -17 + mtree_test_erase(mt, 2); // (nil) + mtree_test_erase(mt, 0); // (nil) + mtree_test_load(mt, 0); // (nil) + mtree_test_insert(mt, 4, (void *)0x9); // 0 + mtree_test_insert(mt, 2, (void *)0x5); // 0 + mtree_test_insert(mt, 110, (void *)0xdd); // 0 + mtree_test_insert(mt, 1, (void *)0x3); // 0 + mtree_test_insert_range(mt, 5, 0, (void *)0xb); // 0 + mtree_test_erase(mt, 2); // (nil) + mtree_test_store(mt , 0, (void *)0x1); // -22 + mtree_test_store(mt , 112, (void *)0xe1); // 0 + mtree_test_insert(mt, 21, (void *)0x2b); // 0 + mtree_test_store(mt , 1, (void *)0x3); // 0 + mtree_test_insert_range(mt, 110, 2, (void *)0xdd); // 0 + mtree_test_store(mt , 2, (void *)0x5); // -22 + mtree_test_load(mt, 22); // 0x5 + mtree_test_erase(mt, 2); // (nil) + mtree_test_store(mt , 210, (void *)0x1a5); // 0 + mtree_test_store_range(mt, 0, 2, (void *)0x1); // 0 + mtree_test_store(mt , 2, (void *)0x5); // 0 + mtree_test_erase(mt, 2); // 0x5 + mtree_test_erase(mt, 22); // 0x5 + mtree_test_erase(mt, 1); // (nil) + mtree_test_erase(mt, 2); // (nil) + mtree_test_store(mt , 0, (void *)0x1); // 0 + mtree_test_load(mt, 112); // (nil) + mtree_test_insert(mt, 2, (void *)0x5); // 0 + mtree_test_erase(mt, 2); // (nil) + mtree_test_store(mt , 1, (void *)0x3); // 0 + mtree_test_insert_range(mt, 1, 2, (void *)0x3); // 0 + mtree_test_erase(mt, 0); // 0x5 + mtree_test_erase(mt, 2); // 0x1 + mtree_test_store(mt , 2, (void *)0x5); // -17 + mtree_test_erase(mt, 0); // 0x5 + mtree_test_erase(mt, 2); // (nil) + mtree_test_store(mt , 0, (void *)0x1); // 0 + mtree_test_store(mt , 0, (void *)0x1); // 0 + mtree_test_erase(mt, 2); // 0x5 + mtree_test_store(mt , 2, (void *)0x5); // 0 + mtree_test_erase(mt, 2); // (nil) + mtree_test_insert(mt, 2, (void *)0x5); // 0 + mtree_test_insert_range(mt, 1, 2, (void *)0x3); // 0 + mtree_test_erase(mt, 0); // 0x5 + mtree_test_erase(mt, 2); // 0x1 + mtree_test_store(mt , 0, (void *)0x1); // -17 + mtree_test_load(mt, 112); // 0x5 + mtree_test_store_range(mt, 110, 12, (void *)0xdd); // 0 + mtree_test_store(mt , 2, (void *)0x5); // -22 + mtree_test_load(mt, 110); // (nil) + mtree_test_insert_range(mt, 4, 71, (void *)0x9); // 0 + mtree_test_load(mt, 2); // (nil) + mtree_test_store(mt , 2, (void *)0x5); // 0 + mtree_test_insert_range(mt, 11, 22, (void *)0x17); // 0 + mtree_test_erase(mt, 12); // 0x5 + mtree_test_store(mt , 2, (void *)0x5); // -17 + mtree_test_load(mt, 22); // 0x9 } static DEFINE_MTREE(tree); -- 2.50.1