From 760b5b3cf0ac3e404954f1349a96bbf807afe619 Mon Sep 17 00:00:00 2001 From: Gliniak Date: Tue, 4 Aug 2020 15:26:04 +0200 Subject: [PATCH] Restrict NtAllocateVirtualMemory only to virtual memory range --- src/xenia/kernel/xboxkrnl/xboxkrnl_memory.cc | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/xenia/kernel/xboxkrnl/xboxkrnl_memory.cc b/src/xenia/kernel/xboxkrnl/xboxkrnl_memory.cc index c54ecc0eb..917058d1e 100644 --- a/src/xenia/kernel/xboxkrnl/xboxkrnl_memory.cc +++ b/src/xenia/kernel/xboxkrnl/xboxkrnl_memory.cc @@ -96,6 +96,14 @@ dword_result_t NtAllocateVirtualMemory(lpdword_t base_addr_ptr, XELOGW("Game setting EXECUTE bit on allocation"); } + // Tried to allocate virtual over xex or physical range + if (*base_addr_ptr >= 0x80000000) { + XELOGE( + "NtAllocateVirtualMemory tried to allocate memory over xex or physical " + "range"); + return X_STATUS_INVALID_PARAMETER; + } + uint32_t page_size; if (*base_addr_ptr != 0) { // ignore specified page size when base address is specified.