diff --git a/src/xenia/kernel/xboxkrnl_memory.cc b/src/xenia/kernel/xboxkrnl_memory.cc index 89ff0f9db..fe98c4d27 100644 --- a/src/xenia/kernel/xboxkrnl_memory.cc +++ b/src/xenia/kernel/xboxkrnl_memory.cc @@ -231,7 +231,7 @@ SHIM_CALL NtQueryVirtualMemory_shim(PPCContext* ppc_state, KernelState* state) { auto heap = state->memory()->LookupHeap(base_address); HeapAllocationInfo alloc_info; - if (!heap->QueryRegionInfo(base_address, &alloc_info)) { + if (heap == nullptr || !heap->QueryRegionInfo(base_address, &alloc_info)) { SHIM_SET_RETURN_32(X_STATUS_INVALID_PARAMETER); return; } diff --git a/src/xenia/memory.cc b/src/xenia/memory.cc index 45fd00ac4..4caaaca4f 100644 --- a/src/xenia/memory.cc +++ b/src/xenia/memory.cc @@ -270,8 +270,10 @@ void Memory::UnmapViews() { BaseHeap* Memory::LookupHeap(uint32_t address) { if (address < 0x40000000) { return &heaps_.v00000000; - } else if (address < 0x80000000) { + } else if (address < 0x7F000000) { return &heaps_.v40000000; + } else if (address < 0x80000000) { + return nullptr; } else if (address < 0x90000000) { return &heaps_.v80000000; } else if (address < 0xA0000000) {