diff options
Diffstat (limited to 'mm')
-rw-r--r-- | mm/kasan/kasan.h | 9 | ||||
-rw-r--r-- | mm/kasan/report.c | 6 |
2 files changed, 15 insertions, 0 deletions
diff --git a/mm/kasan/kasan.h b/mm/kasan/kasan.h index 5b052ab40cf9..1fcc1d81a9cf 100644 --- a/mm/kasan/kasan.h +++ b/mm/kasan/kasan.h | |||
@@ -12,6 +12,15 @@ | |||
12 | #define KASAN_KMALLOC_REDZONE 0xFC /* redzone inside slub object */ | 12 | #define KASAN_KMALLOC_REDZONE 0xFC /* redzone inside slub object */ |
13 | #define KASAN_KMALLOC_FREE 0xFB /* object was freed (kmem_cache_free/kfree) */ | 13 | #define KASAN_KMALLOC_FREE 0xFB /* object was freed (kmem_cache_free/kfree) */ |
14 | 14 | ||
15 | /* | ||
16 | * Stack redzone shadow values | ||
17 | * (Those are compiler's ABI, don't change them) | ||
18 | */ | ||
19 | #define KASAN_STACK_LEFT 0xF1 | ||
20 | #define KASAN_STACK_MID 0xF2 | ||
21 | #define KASAN_STACK_RIGHT 0xF3 | ||
22 | #define KASAN_STACK_PARTIAL 0xF4 | ||
23 | |||
15 | 24 | ||
16 | struct kasan_access_info { | 25 | struct kasan_access_info { |
17 | const void *access_addr; | 26 | const void *access_addr; |
diff --git a/mm/kasan/report.c b/mm/kasan/report.c index 2760edb4d0a8..866732ef3db3 100644 --- a/mm/kasan/report.c +++ b/mm/kasan/report.c | |||
@@ -64,6 +64,12 @@ static void print_error_description(struct kasan_access_info *info) | |||
64 | case 0 ... KASAN_SHADOW_SCALE_SIZE - 1: | 64 | case 0 ... KASAN_SHADOW_SCALE_SIZE - 1: |
65 | bug_type = "out of bounds access"; | 65 | bug_type = "out of bounds access"; |
66 | break; | 66 | break; |
67 | case KASAN_STACK_LEFT: | ||
68 | case KASAN_STACK_MID: | ||
69 | case KASAN_STACK_RIGHT: | ||
70 | case KASAN_STACK_PARTIAL: | ||
71 | bug_type = "out of bounds on stack"; | ||
72 | break; | ||
67 | } | 73 | } |
68 | 74 | ||
69 | pr_err("BUG: KASan: %s in %pS at addr %p\n", | 75 | pr_err("BUG: KASan: %s in %pS at addr %p\n", |