Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0576f060 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull usercopy fix from Kees Cook:
 "Fix hardened usercopy under CONFIG_DEBUG_VIRTUAL"

* tag 'usercopy-v5.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
  usercopy: Avoid HIGHMEM pfn warning
parents 797a3242 314eed30
Loading
Loading
Loading
Loading
+7 −1
Original line number Original line Diff line number Diff line
@@ -11,6 +11,7 @@
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt


#include <linux/mm.h>
#include <linux/mm.h>
#include <linux/highmem.h>
#include <linux/slab.h>
#include <linux/slab.h>
#include <linux/sched.h>
#include <linux/sched.h>
#include <linux/sched/task.h>
#include <linux/sched/task.h>
@@ -227,7 +228,12 @@ static inline void check_heap_object(const void *ptr, unsigned long n,
	if (!virt_addr_valid(ptr))
	if (!virt_addr_valid(ptr))
		return;
		return;


	page = virt_to_head_page(ptr);
	/*
	 * When CONFIG_HIGHMEM=y, kmap_to_page() will give either the
	 * highmem page or fallback to virt_to_page(). The following
	 * is effectively a highmem-aware virt_to_head_page().
	 */
	page = compound_head(kmap_to_page((void *)ptr));


	if (PageSlab(page)) {
	if (PageSlab(page)) {
		/* Check slab allocator for flags and size. */
		/* Check slab allocator for flags and size. */