From 79a5b98d652ee09c094e2f7cc3567596204bef74 Mon Sep 17 00:00:00 2001 From: apio Date: Wed, 11 Jan 2023 19:26:53 +0100 Subject: [PATCH] Kernel: Keep the user pointer const through copy_from_user() --- kernel/src/memory/MemoryManager.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/kernel/src/memory/MemoryManager.cpp b/kernel/src/memory/MemoryManager.cpp index 4e39e146..e085426e 100644 --- a/kernel/src/memory/MemoryManager.cpp +++ b/kernel/src/memory/MemoryManager.cpp @@ -466,7 +466,7 @@ namespace MemoryManager // Userspace pointer not aligned on page boundary if (user_ptr != user_page) { - if (!validate_user_writable_page(user_page)) return false; + if (!validate_user_readable_page(user_page)) return false; } while (size--) @@ -474,10 +474,10 @@ namespace MemoryManager // Crossed a page boundary, gotta check the page tables again before touching any memory!! if (user_ptr % ARCH_PAGE_SIZE) { - if (!validate_user_writable_page(user_ptr)) return false; + if (!validate_user_readable_page(user_ptr)) return false; } - *kernel_ptr++ = *(char*)user_ptr; + *kernel_ptr++ = *(const char*)user_ptr; user_ptr++; }