diff options
| -rw-r--r-- | src/core/memory.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/core/memory.cpp b/src/core/memory.cpp index 74a598852..a3d2d4951 100644 --- a/src/core/memory.cpp +++ b/src/core/memory.cpp | |||
| @@ -219,6 +219,9 @@ void Write(const VAddr vaddr, const T data) { | |||
| 219 | bool IsValidVirtualAddress(const Kernel::Process& process, const VAddr vaddr) { | 219 | bool IsValidVirtualAddress(const Kernel::Process& process, const VAddr vaddr) { |
| 220 | auto& page_table = process.vm_manager.page_table; | 220 | auto& page_table = process.vm_manager.page_table; |
| 221 | 221 | ||
| 222 | if ((vaddr >> PAGE_BITS) >= PAGE_TABLE_NUM_ENTRIES) | ||
| 223 | return false; | ||
| 224 | |||
| 222 | const u8* page_pointer = page_table.pointers[vaddr >> PAGE_BITS]; | 225 | const u8* page_pointer = page_table.pointers[vaddr >> PAGE_BITS]; |
| 223 | if (page_pointer) | 226 | if (page_pointer) |
| 224 | return true; | 227 | return true; |