From f6853eb561fb9bfd56dfe0009f0ea27540937bd5 Mon Sep 17 00:00:00 2001 From: Michael Ellerman Date: Tue, 15 Nov 2016 21:59:38 +1100 Subject: [PATCH] powerpc/64: Define ILLEGAL_POINTER_VALUE for 64-bit This is used in poison.h to offset poison values so that they don't point directly into user space. The value we choose sits roughly between user and kernel space, which means on their own the poison values don't point anywhere useful. If an attacker can cause an access at some offset from the poison value then we may still be in trouble, but by putting the poison values between user and kernel space we maximise the required size of that offset. Signed-off-by: Michael Ellerman --- arch/powerpc/Kconfig | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index 48923c349ccb..48001e754ff2 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig @@ -580,6 +580,13 @@ config ARCH_SPARSEMEM_DEFAULT config SYS_SUPPORTS_HUGETLBFS bool +config ILLEGAL_POINTER_VALUE + hex + # This is roughly half way between the top of user space and the bottom + # of kernel space, which seems about as good as we can get. + default 0x5deadbeef0000000 if PPC64 + default 0 + source "mm/Kconfig" config ARCH_MEMORY_PROBE -- 2.20.1