shared_memory: Only mark addresses as invalid if they are within the heap

This commit is contained in:
shinyquagsire23 2018-01-29 23:38:56 -07:00
parent 449e32bb81
commit 96c444d1ff
1 changed files with 2 additions and 1 deletions

View File

@ -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. // can not map it in its own address space unless it was created with addr=0, result 0xD900182C.
if (address != 0) { 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", LOG_ERROR(Kernel, "cannot map id=%u, address=0x%llx name=%s, invalid address",
GetObjectId(), address, name.c_str()); GetObjectId(), address, name.c_str());
return ERR_INVALID_ADDRESS; return ERR_INVALID_ADDRESS;