]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/blobdiff - lib/test_kasan.c
scsi: iscsi: Fix a potential deadlock in the timeout handler
[mirror_ubuntu-hirsute-kernel.git] / lib / test_kasan.c
index 49cc4d570a40b7336ec98ec6e9d4ea0ce032f7e5..328d33beae365d0eab46128e9d3af74485fc9eaf 100644 (file)
@@ -19,6 +19,7 @@
 #include <linux/string.h>
 #include <linux/uaccess.h>
 #include <linux/io.h>
+#include <linux/vmalloc.h>
 
 #include <asm/page.h>
 
@@ -748,6 +749,30 @@ static noinline void __init kmalloc_double_kzfree(void)
        kzfree(ptr);
 }
 
+#ifdef CONFIG_KASAN_VMALLOC
+static noinline void __init vmalloc_oob(void)
+{
+       void *area;
+
+       pr_info("vmalloc out-of-bounds\n");
+
+       /*
+        * We have to be careful not to hit the guard page.
+        * The MMU will catch that and crash us.
+        */
+       area = vmalloc(3000);
+       if (!area) {
+               pr_err("Allocation failed\n");
+               return;
+       }
+
+       ((volatile char *)area)[3100];
+       vfree(area);
+}
+#else
+static void __init vmalloc_oob(void) {}
+#endif
+
 static int __init kmalloc_tests_init(void)
 {
        /*
@@ -793,6 +818,7 @@ static int __init kmalloc_tests_init(void)
        kasan_strings();
        kasan_bitops();
        kmalloc_double_kzfree();
+       vmalloc_oob();
 
        kasan_restore_multi_shot(multishot);