Added a check for queryprotect result in MMIO

This commit is contained in:
guccigang420 2023-10-01 17:39:20 +02:00
parent f6b5424a9f
commit 195ff8ee75
1 changed files with 3 additions and 2 deletions

View File

@ -437,8 +437,9 @@ bool MMIOHandler::ExceptionCallback(Exception* ex) {
auto lock = global_critical_region_.Acquire();
memory::PageAccess cur_access;
size_t page_length = memory::page_size();
memory::QueryProtect(fault_host_address, page_length, cur_access);
if (cur_access != memory::PageAccess::kNoAccess &&
bool protect_result =
memory::QueryProtect(fault_host_address, page_length, cur_access);
if (protect_result == true && cur_access != memory::PageAccess::kNoAccess &&
(!is_write || cur_access != memory::PageAccess::kReadOnly)) {
// Another thread has cleared this watch. Abort.
return true;