diff options
author | Andrey Konovalov <andreyknvl@google.com> | 2017-05-03 14:56:47 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2017-05-03 15:52:12 -0700 |
commit | 5ab6d91ac998158d04f9563335aa5f1409eda971 (patch) | |
tree | da750838c43f7a82600d4b5636b3ea8f9c142ffb /mm/kasan/kasan.c | |
parent | 430a05f91d6051705a6ddbe207735ca62e39bb80 (diff) | |
download | op-kernel-dev-5ab6d91ac998158d04f9563335aa5f1409eda971.zip op-kernel-dev-5ab6d91ac998158d04f9563335aa5f1409eda971.tar.gz |
kasan: improve double-free report format
Changes double-free report header from
BUG: Double free or freeing an invalid pointer
Unexpected shadow byte: 0xFB
to
BUG: KASAN: double-free or invalid-free in kmalloc_oob_left+0xe5/0xef
This makes a bug uniquely identifiable by the first report line. To
account for removing of the unexpected shadow value, print shadow bytes
at the end of the report as in reports for other kinds of bugs.
Link: http://lkml.kernel.org/r/20170302134851.101218-9-andreyknvl@google.com
Signed-off-by: Andrey Konovalov <andreyknvl@google.com>
Acked-by: Dmitry Vyukov <dvyukov@google.com>
Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>
Cc: Alexander Potapenko <glider@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/kasan/kasan.c')
-rw-r--r-- | mm/kasan/kasan.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/mm/kasan/kasan.c b/mm/kasan/kasan.c index 98b2719..9348d27 100644 --- a/mm/kasan/kasan.c +++ b/mm/kasan/kasan.c @@ -577,7 +577,8 @@ bool kasan_slab_free(struct kmem_cache *cache, void *object) shadow_byte = READ_ONCE(*(s8 *)kasan_mem_to_shadow(object)); if (shadow_byte < 0 || shadow_byte >= KASAN_SHADOW_SCALE_SIZE) { - kasan_report_double_free(cache, object, shadow_byte); + kasan_report_double_free(cache, object, + __builtin_return_address(1)); return true; } |