mm: usercopy: move the virt_addr_valid() below the is_vmalloc_addr()
authorYuanzheng Song <songyuanzheng@huawei.com>
Thu, 5 May 2022 07:10:37 +0000 (07:10 +0000)
committerKees Cook <keescook@chromium.org>
Mon, 16 May 2022 23:02:21 +0000 (16:02 -0700)
commita5f4d9df1f7beaaebbaa5943ceb789c34f10b8d5
tree64b27c83d25403a1c9fe2b4c3b53c8d4cff3b3d3
parent710e4ebfbacac53b05c86a01e6d636c69f6eca9f
mm: usercopy: move the virt_addr_valid() below the is_vmalloc_addr()

The is_kmap_addr() and the is_vmalloc_addr() in the check_heap_object()
will not work, because the virt_addr_valid() will exclude the kmap and
vmalloc regions. So let's move the virt_addr_valid() below
the is_vmalloc_addr().

Signed-off-by: Yuanzheng Song <songyuanzheng@huawei.com>
Fixes: 4e140f59d285 ("mm/usercopy: Check kmap addresses properly")
Fixes: 0aef499f3172 ("mm/usercopy: Detect vmalloc overruns")
Cc: Matthew Wilcox (Oracle) <willy@infradead.org>
Signed-off-by: Kees Cook <keescook@chromium.org>
Link: https://lore.kernel.org/r/20220505071037.4121100-1-songyuanzheng@huawei.com
mm/usercopy.c