Messages in this thread Patch in this message | | | From | "Alastair D'Silva" <> | Subject | [PATCH] powerpc: Perform a bounds check in arch_add_memory | Date | Tue, 27 Aug 2019 15:20:46 +1000 |
| |
From: Alastair D'Silva <alastair@d-silva.org>
It is possible for firmware to allocate memory ranges outside the range of physical memory that we support (MAX_PHYSMEM_BITS).
This patch adds a bounds check to ensure that any hotplugged memory is addressable.
Signed-off-by: Alastair D'Silva <alastair@d-silva.org> --- arch/powerpc/mm/mem.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c index 9191a66b3bc5..de18fb73de30 100644 --- a/arch/powerpc/mm/mem.c +++ b/arch/powerpc/mm/mem.c @@ -111,6 +111,9 @@ int __ref arch_add_memory(int nid, u64 start, u64 size, unsigned long nr_pages = size >> PAGE_SHIFT; int rc; + if ((start + size - 1) >> MAX_PHYSMEM_BITS) + return -EINVAL; + resize_hpt_for_hotplug(memblock_phys_mem_size()); start = (unsigned long)__va(start); -- 2.21.0
| |