diff --git a/kernel/src/memory/AddressSpace.cpp b/kernel/src/memory/AddressSpace.cpp index 5cf92f8c..8e9debc1 100644 --- a/kernel/src/memory/AddressSpace.cpp +++ b/kernel/src/memory/AddressSpace.cpp @@ -12,6 +12,7 @@ AddressSpace AddressSpace::create() { AddressSpace result; result.m_pml4 = (PageTable*)PMM::request_page(); + memset(result.m_pml4, 0, PAGE_SIZE); VMM::install_kernel_page_directory_into_address_space(result); return move(result); } diff --git a/kernel/src/memory/VMM.cpp b/kernel/src/memory/VMM.cpp index 90c00f2c..605c17e2 100644 --- a/kernel/src/memory/VMM.cpp +++ b/kernel/src/memory/VMM.cpp @@ -281,7 +281,8 @@ void VMM::install_kernel_page_directory_into_address_space(AddressSpace& space) if (!space_last_pdp_pde.present) { - space_last_pdp = (PageTable*)PMM::request_page(); + space_last_pdp = (PageTable*)PMM::request_page(); // FIXME: Add out-of-memory checks. + memset(space_last_pdp, 0, PAGE_SIZE); space_last_pdp_pde.present = true; space_last_pdp_pde.read_write = true;