From 96c444d1ffff5b9e5a28c5d632a12e90a740858f Mon Sep 17 00:00:00 2001 From: shinyquagsire23 Date: Mon, 29 Jan 2018 23:38:56 -0700 Subject: [PATCH] shared_memory: Only mark addresses as invalid if they are within the heap --- src/core/hle/kernel/shared_memory.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/core/hle/kernel/shared_memory.cpp b/src/core/hle/kernel/shared_memory.cpp index 7279366ec..f8aa429dc 100644 --- a/src/core/hle/kernel/shared_memory.cpp +++ b/src/core/hle/kernel/shared_memory.cpp @@ -136,7 +136,8 @@ ResultCode SharedMemory::Map(Process* target_process, VAddr address, MemoryPermi // can not map it in its own address space unless it was created with addr=0, result 0xD900182C. if (address != 0) { - if (address < Memory::HEAP_VADDR) { + // TODO(shinyquagsire23): Check for virtual/mappable memory here too? + if (address >= Memory::HEAP_VADDR && address < Memory::HEAP_VADDR_END) { LOG_ERROR(Kernel, "cannot map id=%u, address=0x%llx name=%s, invalid address", GetObjectId(), address, name.c_str()); return ERR_INVALID_ADDRESS;