diff --git a/src/xenia/memory.cc b/src/xenia/memory.cc index 44a67c4be..2593bd146 100644 --- a/src/xenia/memory.cc +++ b/src/xenia/memory.cc @@ -615,6 +615,11 @@ bool BaseHeap::AllocRange(uint32_t low_address, uint32_t high_address, high_page_number = std::min(uint32_t(page_table_.size()) - 1, high_page_number); + if (page_count > (high_page_number - low_page_number)) { + XELOGE("BaseHeap::Alloc page count too big for requested range"); + return false; + } + std::lock_guard lock(heap_mutex_); // Find a free page range.