diff options
| author | 2018-01-29 23:38:56 -0700 | |
|---|---|---|
| committer | 2018-01-29 23:38:56 -0700 | |
| commit | 96c444d1ffff5b9e5a28c5d632a12e90a740858f (patch) | |
| tree | 162c8a9f240bf17deb66b9607c41397ab46b5dca /src/core | |
| parent | Merge pull request #151 from lioncash/catch (diff) | |
| download | yuzu-96c444d1ffff5b9e5a28c5d632a12e90a740858f.tar.gz yuzu-96c444d1ffff5b9e5a28c5d632a12e90a740858f.tar.xz yuzu-96c444d1ffff5b9e5a28c5d632a12e90a740858f.zip | |
shared_memory: Only mark addresses as invalid if they are within the heap
Diffstat (limited to 'src/core')
| -rw-r--r-- | src/core/hle/kernel/shared_memory.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
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 | |||
| 136 | // can not map it in its own address space unless it was created with addr=0, result 0xD900182C. | 136 | // can not map it in its own address space unless it was created with addr=0, result 0xD900182C. |
| 137 | 137 | ||
| 138 | if (address != 0) { | 138 | if (address != 0) { |
| 139 | if (address < Memory::HEAP_VADDR) { | 139 | // TODO(shinyquagsire23): Check for virtual/mappable memory here too? |
| 140 | if (address >= Memory::HEAP_VADDR && address < Memory::HEAP_VADDR_END) { | ||
| 140 | LOG_ERROR(Kernel, "cannot map id=%u, address=0x%llx name=%s, invalid address", | 141 | LOG_ERROR(Kernel, "cannot map id=%u, address=0x%llx name=%s, invalid address", |
| 141 | GetObjectId(), address, name.c_str()); | 142 | GetObjectId(), address, name.c_str()); |
| 142 | return ERR_INVALID_ADDRESS; | 143 | return ERR_INVALID_ADDRESS; |