Commit 00a14294 authored by Paul Lawrence's avatar Paul Lawrence Committed by Linus Torvalds
Browse files

kasan: add tests for alloca poisoning

Link: http://lkml.kernel.org/r/20171204191735.132544-5-paullawrence@google.com

Signed-off-by: default avatarGreg Hackmann <ghackmann@google.com>
Signed-off-by: default avatarPaul Lawrence <paullawrence@google.com>
Acked-by: default avatarAndrey Ryabinin <aryabinin@virtuozzo.com>
Cc: Alexander Potapenko <glider@google.com>
Cc: Dmitry Vyukov <dvyukov@google.com>
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Matthias Kaehlcke <mka@chromium.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 342061ee
...@@ -472,6 +472,26 @@ static noinline void __init use_after_scope_test(void) ...@@ -472,6 +472,26 @@ static noinline void __init use_after_scope_test(void)
p[1023] = 1; p[1023] = 1;
} }
static noinline void __init kasan_alloca_oob_left(void)
{
volatile int i = 10;
char alloca_array[i];
char *p = alloca_array - 1;
pr_info("out-of-bounds to left on alloca\n");
*(volatile char *)p;
}
static noinline void __init kasan_alloca_oob_right(void)
{
volatile int i = 10;
char alloca_array[i];
char *p = alloca_array + i;
pr_info("out-of-bounds to right on alloca\n");
*(volatile char *)p;
}
static int __init kmalloc_tests_init(void) static int __init kmalloc_tests_init(void)
{ {
/* /*
...@@ -502,6 +522,8 @@ static int __init kmalloc_tests_init(void) ...@@ -502,6 +522,8 @@ static int __init kmalloc_tests_init(void)
memcg_accounted_kmem_cache(); memcg_accounted_kmem_cache();
kasan_stack_oob(); kasan_stack_oob();
kasan_global_oob(); kasan_global_oob();
kasan_alloca_oob_left();
kasan_alloca_oob_right();
ksize_unpoisons_memory(); ksize_unpoisons_memory();
copy_user_test(); copy_user_test();
use_after_scope_test(); use_after_scope_test();
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment