diff --git a/Kernel/VM/MemoryManager.cpp b/Kernel/VM/MemoryManager.cpp index 8f44ddc25a..d6afdf0b97 100644 --- a/Kernel/VM/MemoryManager.cpp +++ b/Kernel/VM/MemoryManager.cpp @@ -592,14 +592,14 @@ bool MemoryManager::validate_user_stack(const Process& process, VirtualAddress v bool MemoryManager::validate_user_read(const Process& process, VirtualAddress vaddr) const { - auto* region = region_from_vaddr(process, vaddr); - return region && region->is_readable(); + auto* region = user_region_from_vaddr(const_cast(process), vaddr); + return region && region->is_user_accessible() && region->is_readable(); } bool MemoryManager::validate_user_write(const Process& process, VirtualAddress vaddr) const { - auto* region = region_from_vaddr(process, vaddr); - return region && region->is_writable(); + auto* region = user_region_from_vaddr(const_cast(process), vaddr); + return region && region->is_user_accessible() && region->is_writable(); } void MemoryManager::register_vmobject(VMObject& vmobject)