From 536c0ff3ee048f1ae5b2967cce8d475c4e7da1d9 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Fri, 17 Jan 2020 22:32:34 +0100 Subject: [PATCH] Kernel: Only clone the bottom 2MB of mappings from kernel to processes --- Kernel/VM/PageDirectory.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Kernel/VM/PageDirectory.cpp b/Kernel/VM/PageDirectory.cpp index 65d8b6fe45..9d3f98e9ae 100644 --- a/Kernel/VM/PageDirectory.cpp +++ b/Kernel/VM/PageDirectory.cpp @@ -62,12 +62,12 @@ PageDirectory::PageDirectory(Process& process, const RangeAllocator* parent_rang MM.unquickmap_page(); } - // Clone bottom 8 MB of mappings from kernel_page_directory - PageDirectoryEntry buffer[4]; + // Clone bottom 2 MB of mappings from kernel_page_directory + PageDirectoryEntry buffer; auto* kernel_pd = MM.quickmap_pd(MM.kernel_page_directory(), 0); - memcpy(buffer, kernel_pd, sizeof(PageDirectoryEntry) * 4); + memcpy(&buffer, kernel_pd, sizeof(PageDirectoryEntry)); auto* new_pd = MM.quickmap_pd(*this, 0); - memcpy(new_pd, buffer, sizeof(PageDirectoryEntry) * 4); + memcpy(new_pd, &buffer, sizeof(PageDirectoryEntry)); InterruptDisabler disabler; cr3_map().set(cr3(), this);