mm/usercopy: Check kmap addresses properly
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Mon, 10 Jan 2022 23:15:27 +0000 (23:15 +0000)
committerKees Cook <keescook@chromium.org>
Wed, 13 Apr 2022 19:15:50 +0000 (12:15 -0700)
commit4e140f59d285c1ca1e5c81b4c13e27366865bd09
tree0e16718847cb02bacbe823ac5ba388619e46359f
parenta19944809fe9942e6a96292490717904d0690c21
mm/usercopy: Check kmap addresses properly

If you are copying to an address in the kmap region, you may not copy
across a page boundary, no matter what the size of the underlying
allocation.  You can't kmap() a slab page because slab pages always
come from low memory.

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Acked-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Kees Cook <keescook@chromium.org>
Link: https://lore.kernel.org/r/20220110231530.665970-2-willy@infradead.org
arch/x86/include/asm/highmem.h
include/linux/highmem-internal.h
mm/usercopy.c