From 6244ea505189b422b5a246323427d66fa9ee90a6 Mon Sep 17 00:00:00 2001 From: Michael Lotz Date: Tue, 21 Jun 2011 13:06:26 +0000 Subject: [PATCH] Fix range check. The previous check would produce an off by one error making the last byte of an unmapped-but-still-there page non-readable (i.e. from B_NO_LOCK areas), causing such reads to fail in KDL. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42276 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/system/kernel/vm/vm.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/system/kernel/vm/vm.cpp b/src/system/kernel/vm/vm.cpp index 8717c33a7f..b1e60cedd6 100644 --- a/src/system/kernel/vm/vm.cpp +++ b/src/system/kernel/vm/vm.cpp @@ -4839,8 +4839,8 @@ status_t vm_debug_copy_page_memory(team_id teamID, void* unsafeMemory, void* buffer, size_t size, bool copyToUnsafe) { - if (size > B_PAGE_SIZE - || ((addr_t)unsafeMemory + size) % B_PAGE_SIZE < size) { + if (size > B_PAGE_SIZE || ROUNDDOWN((addr_t)unsafeMemory, B_PAGE_SIZE) + != ROUNDDOWN((addr_t)unsafeMemory + size - 1, B_PAGE_SIZE)) { return B_BAD_VALUE; }