diff options
author | Matthew Dawson <matthew@mjdsystems.ca> | 2016-06-27 14:32:21 +0800 |
---|---|---|
committer | Alex Shi <alex.shi@linaro.org> | 2016-06-28 11:35:10 +0800 |
commit | 07d9bf00133c330cd7c2bc9689f529c2bd0b64d0 (patch) | |
tree | fe1e5571a9eb8c4891eb2d3f634fa390f37c97d5 | |
parent | 94a1cb5ddee536b0920cb839f249b5cedbb58885 (diff) |
mm/mempool: avoid KASAN marking mempool poison checks as use-after-freev4.1/topic/KASAN
commit 7640131032db9118a78af715ac77ba2debeeb17c upstream
When removing an element from the mempool, mark it as unpoisoned in KASAN
before verifying its contents for SLUB/SLAB debugging. Otherwise KASAN
will flag the reads checking the element use-after-free writes as
use-after-free reads.
Signed-off-by: Matthew Dawson <matthew@mjdsystems.ca>
Acked-by: Andrey Ryabinin <aryabinin@virtuozzo.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Xishi Qiu <qiuxishi@huawei.com>
-rw-r--r-- | mm/mempool.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/mm/mempool.c b/mm/mempool.c index 2cc08de8b1db..70cccdcff860 100644 --- a/mm/mempool.c +++ b/mm/mempool.c @@ -135,8 +135,8 @@ static void *remove_element(mempool_t *pool) void *element = pool->elements[--pool->curr_nr]; BUG_ON(pool->curr_nr < 0); - check_element(pool, element); kasan_unpoison_element(pool, element); + check_element(pool, element); return element; } |