1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-20 13:55:08 +00:00

Kernel: Copy command line to a safe place

This avoids kmalloc overwriting it because it may be within the
kmalloc or eternal pool.
This commit is contained in:
Tom 2020-08-24 19:35:27 -06:00 committed by Andreas Kling
parent d89582880e
commit 81780e607d
3 changed files with 22 additions and 4 deletions

View file

@ -113,6 +113,10 @@ extern "C" [[noreturn]] void init()
{
setup_serial_debug();
// We need to copy the command line before kmalloc is initialized,
// as it may overwrite parts of multiboot!
CommandLine::early_initialize(reinterpret_cast<const char*>(low_physical_to_virtual(multiboot_info_ptr->cmdline)));
s_bsp_processor.early_initialize(0);
// Invoke the constructors needed for the kernel heap
@ -123,7 +127,7 @@ extern "C" [[noreturn]] void init()
s_bsp_processor.initialize(0);
CommandLine::initialize(reinterpret_cast<const char*>(low_physical_to_virtual(multiboot_info_ptr->cmdline)));
CommandLine::initialize();
MemoryManager::initialize(0);
// Invoke all static global constructors in the kernel.