]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
test_maple_tree: Add check for node overflow from fuzzer
authorLiam R. Howlett <Liam.Howlett@oracle.com>
Wed, 2 Mar 2022 18:54:22 +0000 (13:54 -0500)
committerLiam R. Howlett <Liam.Howlett@oracle.com>
Tue, 8 Mar 2022 18:19:16 +0000 (13:19 -0500)
Signed-off-by: Liam R. Howlett <Liam.Howlett@oracle.com>
lib/test_maple_tree.c

index 3647a6f98aa273ef4b000067b0708d8f7d73ee41..0bfa8c0894f9345be15e1314c2281c69165bb41e 100644 (file)
@@ -37164,6 +37164,30 @@ static noinline void check_fuzzer(struct maple_tree *mt)
        mtree_test_erase(mt, 4); // 0x9
        mtree_test_load(mt, 5); // (nil)
        mtree_test_erase(mt, 0); // 0x1
+       mtree_destroy(mt);
+
+       /*
+        * 3. Cause a node overflow on copy
+        * Fixed by using the correct check for node size in mas_wr_modify()
+        * Also discovered issue with metadata setting.
+        */
+       mt_init_flags(mt, 0);
+       mtree_test_store_range(mt, 0, 18446744073709551615UL, (void*)0x1); // 0
+       mtree_test_store(mt, 4, (void*)0x9); // 0
+       mtree_test_erase(mt, 5); // 0x1
+       mtree_test_erase(mt, 0); // 0x1
+       mtree_test_erase(mt, 4); // 0x9
+       mtree_test_store(mt, 5, (void*)0xb); // 0
+       mtree_test_erase(mt, 5); // 0xb
+       mtree_test_store(mt, 5, (void*)0xb); // 0
+       mtree_test_erase(mt, 5); // 0xb
+       mtree_test_erase(mt, 4); // (nil)
+       mtree_test_store(mt, 4, (void*)0x9); // 0
+       mtree_test_store(mt, 444, (void*)0x379); // 0
+       mtree_test_store(mt, 0, (void*)0x1); // 0
+       mtree_test_load(mt, 0); // 0x1
+       mtree_test_store(mt, 5, (void*)0xb); // 0
+       mtree_test_erase(mt, 0);
 }
 
 static DEFINE_MTREE(tree);