Commit 0952d87f authored by Andrey Konovalov's avatar Andrey Konovalov Committed by Linus Torvalds

kasan: update reported bug types for kernel memory accesses

Update the names of the bad access types to better reflect the type of
the access that happended and make these error types "literals" that can
be used for classification and deduplication in scripts.
Signed-off-by: default avatarAndrey Konovalov <andreyknvl@google.com>
Cc: Andrey Ryabinin <ryabinin.a.a@gmail.com>
Cc: Dmitry Vyukov <dvyukov@google.com>
Cc: Alexander Potapenko <glider@google.com>
Cc: Konstantin Serebryany <kcc@google.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent e9121076
...@@ -49,7 +49,7 @@ static const void *find_first_bad_addr(const void *addr, size_t size) ...@@ -49,7 +49,7 @@ static const void *find_first_bad_addr(const void *addr, size_t size)
static void print_error_description(struct kasan_access_info *info) static void print_error_description(struct kasan_access_info *info)
{ {
const char *bug_type = "unknown crash"; const char *bug_type = "unknown-crash";
u8 shadow_val; u8 shadow_val;
info->first_bad_addr = find_first_bad_addr(info->access_addr, info->first_bad_addr = find_first_bad_addr(info->access_addr,
...@@ -58,21 +58,25 @@ static void print_error_description(struct kasan_access_info *info) ...@@ -58,21 +58,25 @@ static void print_error_description(struct kasan_access_info *info)
shadow_val = *(u8 *)kasan_mem_to_shadow(info->first_bad_addr); shadow_val = *(u8 *)kasan_mem_to_shadow(info->first_bad_addr);
switch (shadow_val) { switch (shadow_val) {
case KASAN_FREE_PAGE: case 0 ... KASAN_SHADOW_SCALE_SIZE - 1:
case KASAN_KMALLOC_FREE: bug_type = "out-of-bounds";
bug_type = "use after free";
break; break;
case KASAN_PAGE_REDZONE: case KASAN_PAGE_REDZONE:
case KASAN_KMALLOC_REDZONE: case KASAN_KMALLOC_REDZONE:
bug_type = "slab-out-of-bounds";
break;
case KASAN_GLOBAL_REDZONE: case KASAN_GLOBAL_REDZONE:
case 0 ... KASAN_SHADOW_SCALE_SIZE - 1: bug_type = "global-out-of-bounds";
bug_type = "out of bounds access";
break; break;
case KASAN_STACK_LEFT: case KASAN_STACK_LEFT:
case KASAN_STACK_MID: case KASAN_STACK_MID:
case KASAN_STACK_RIGHT: case KASAN_STACK_RIGHT:
case KASAN_STACK_PARTIAL: case KASAN_STACK_PARTIAL:
bug_type = "out of bounds on stack"; bug_type = "stack-out-of-bounds";
break;
case KASAN_FREE_PAGE:
case KASAN_KMALLOC_FREE:
bug_type = "use-after-free";
break; break;
} }
......
Markdown is supported
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