[Devel] [PATCH rh7] ms/mm: prevent KASAN false positives in kmemleak
Andrey Ryabinin
aryabinin at virtuozzo.com
Wed May 31 05:58:54 PDT 2017
From: Dmitry Vyukov <dvyukov at google.com>
commit 5c335fe020ea287b2b49cc4dfca9f6756b88bb71 upstream.
When kmemleak dumps contents of leaked objects it reads whole objects
regardless of user-requested size. This upsets KASAN. Disable KASAN
checks around object dump.
Link: http://lkml.kernel.org/r/1466617631-68387-1-git-send-email-dvyukov@google.com
Signed-off-by: Dmitry Vyukov <dvyukov at google.com>
Acked-by: Catalin Marinas <catalin.marinas at arm.com>
Cc: Andrey Ryabinin <ryabinin.a.a at gmail.com>
Cc: Alexander Potapenko <glider at google.com>
Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
Found during investigating https://jira.sw.ru/browse/PSBM-66617
Signed-off-by: Andrey Ryabinin <aryabinin at virtuozzo.com>
---
mm/kmemleak.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/mm/kmemleak.c b/mm/kmemleak.c
index ea54d1bd0eb8..db297cdd7e51 100644
--- a/mm/kmemleak.c
+++ b/mm/kmemleak.c
@@ -299,6 +299,8 @@ static void hex_dump_object(struct seq_file *seq,
min(object->size, (size_t)(HEX_MAX_LINES * HEX_ROW_SIZE));
seq_printf(seq, " hex dump (first %d bytes):\n", len);
+ kasan_disable_current();
+
for (i = 0; i < len; i += HEX_ROW_SIZE) {
int linelen = min(remaining, HEX_ROW_SIZE);
@@ -308,6 +310,7 @@ static void hex_dump_object(struct seq_file *seq,
HEX_ASCII);
seq_printf(seq, " %s\n", linebuf);
}
+ kasan_enable_current();
}
/*
--
2.13.0
More information about the Devel
mailing list