aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/mm/kasan/kasan.c
diff options
context:
space:
mode:
authorAndrey Konovalov <andreyknvl@google.com>2017-05-03 14:56:47 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2017-05-03 15:52:12 -0700
commit5ab6d91ac998158d04f9563335aa5f1409eda971 (patch)
treeda750838c43f7a82600d4b5636b3ea8f9c142ffb /mm/kasan/kasan.c
parentkasan: print page description after stacks (diff)
downloadwireguard-linux-5ab6d91ac998158d04f9563335aa5f1409eda971.tar.xz
wireguard-linux-5ab6d91ac998158d04f9563335aa5f1409eda971.zip
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.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/mm/kasan/kasan.c b/mm/kasan/kasan.c
index 98b27195e38b..9348d27088c1 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;
}