projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
dc15a8a
)
kasan, slab: fix conflicts with CONFIG_HARDENED_USERCOPY
author
Andrey Konovalov
<
[email protected]
>
Thu, 21 Feb 2019 06:20:25 +0000
(22:20 -0800)
committer
Linus Torvalds
<
[email protected]
>
Thu, 21 Feb 2019 17:01:00 +0000
(09:01 -0800)
Similarly to commit
96fedce27e13
("kasan: make tag based mode work with
CONFIG_HARDENED_USERCOPY"), we need to reset pointer tags in
__check_heap_object() in mm/slab.c before doing any pointer math.
Link:
http://lkml.kernel.org/r/9a5c0f958db10e69df5ff9f2b997866b56b7effc.1550602886.git.andreyknvl@google.com
Signed-off-by: Andrey Konovalov <
[email protected]
>
Tested-by: Qian Cai <
[email protected]
>
Cc: Alexander Potapenko <
[email protected]
>
Cc: Andrey Ryabinin <
[email protected]
>
Cc: Catalin Marinas <
[email protected]
>
Cc: Dmitry Vyukov <
[email protected]
>
Cc: Evgeniy Stepanov <
[email protected]
>
Cc: Kostya Serebryany <
[email protected]
>
Cc: Vincenzo Frascino <
[email protected]
>
Signed-off-by: Andrew Morton <
[email protected]
>
Signed-off-by: Linus Torvalds <
[email protected]
>
mm/slab.c
patch
|
blob
|
history
diff --git
a/mm/slab.c
b/mm/slab.c
index 78eb8c5bf4e4ca126dbba917904216ab27fdf72f..c84458281a8866b7ab880609bead7ccc0be79a83 100644
(file)
--- a/
mm/slab.c
+++ b/
mm/slab.c
@@
-4408,6
+4408,8
@@
void __check_heap_object(const void *ptr, unsigned long n, struct page *page,
unsigned int objnr;
unsigned long offset;
+ ptr = kasan_reset_tag(ptr);
+
/* Find and validate object. */
cachep = page->slab_cache;
objnr = obj_to_index(cachep, page, (void *)ptr);