aboutsummaryrefslogtreecommitdiff
path: root/src/core/memory.cpp
diff options
context:
space:
mode:
authorRozlette <Uberpanzermensch@gmail.com>2018-01-20 14:56:15 -0600
committerRozlette <Uberpanzermensch@gmail.com>2018-01-20 14:56:15 -0600
commitecc35e89e0736f5f08e9010726ef33b793d4045c (patch)
tree839f7e9c5c07f73b2eac85b5dcc4b4ab75f68796 /src/core/memory.cpp
parent3f3688db0b3f6969726e756a48e7ba8a20aa3514 (diff)
memory: Return false for large VAddr in IsValidVirtualAddress
Diffstat (limited to 'src/core/memory.cpp')
-rw-r--r--src/core/memory.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/core/memory.cpp b/src/core/memory.cpp
index 74a5988523..a3d2d4951e 100644
--- a/src/core/memory.cpp
+++ b/src/core/memory.cpp
@@ -219,6 +219,9 @@ void Write(const VAddr vaddr, const T data) {
bool IsValidVirtualAddress(const Kernel::Process& process, const VAddr vaddr) {
auto& page_table = process.vm_manager.page_table;
+ if ((vaddr >> PAGE_BITS) >= PAGE_TABLE_NUM_ENTRIES)
+ return false;
+
const u8* page_pointer = page_table.pointers[vaddr >> PAGE_BITS];
if (page_pointer)
return true;