diff options
Diffstat (limited to 'lib/test_kasan.c')
-rw-r--r-- | lib/test_kasan.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/test_kasan.c b/lib/test_kasan.c index 0b1d3140fbb8..a25c9763fce1 100644 --- a/lib/test_kasan.c +++ b/lib/test_kasan.c | |||
@@ -20,6 +20,7 @@ | |||
20 | #include <linux/string.h> | 20 | #include <linux/string.h> |
21 | #include <linux/uaccess.h> | 21 | #include <linux/uaccess.h> |
22 | #include <linux/module.h> | 22 | #include <linux/module.h> |
23 | #include <linux/kasan.h> | ||
23 | 24 | ||
24 | /* | 25 | /* |
25 | * Note: test functions are marked noinline so that their names appear in | 26 | * Note: test functions are marked noinline so that their names appear in |
@@ -474,6 +475,12 @@ static noinline void __init use_after_scope_test(void) | |||
474 | 475 | ||
475 | static int __init kmalloc_tests_init(void) | 476 | static int __init kmalloc_tests_init(void) |
476 | { | 477 | { |
478 | /* | ||
479 | * Temporarily enable multi-shot mode. Otherwise, we'd only get a | ||
480 | * report for the first case. | ||
481 | */ | ||
482 | bool multishot = kasan_save_enable_multi_shot(); | ||
483 | |||
477 | kmalloc_oob_right(); | 484 | kmalloc_oob_right(); |
478 | kmalloc_oob_left(); | 485 | kmalloc_oob_left(); |
479 | kmalloc_node_oob_right(); | 486 | kmalloc_node_oob_right(); |
@@ -499,6 +506,9 @@ static int __init kmalloc_tests_init(void) | |||
499 | ksize_unpoisons_memory(); | 506 | ksize_unpoisons_memory(); |
500 | copy_user_test(); | 507 | copy_user_test(); |
501 | use_after_scope_test(); | 508 | use_after_scope_test(); |
509 | |||
510 | kasan_restore_multi_shot(multishot); | ||
511 | |||
502 | return -EAGAIN; | 512 | return -EAGAIN; |
503 | } | 513 | } |
504 | 514 | ||