From 252784ff5b318162c56dd5f0576e0574cb55be9f Mon Sep 17 00:00:00 2001 From: Bananymous Date: Sat, 19 Apr 2025 21:29:52 +0300 Subject: [PATCH] Kernel: Preserve kernel command line on fork --- kernel/kernel/Process.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/kernel/kernel/Process.cpp b/kernel/kernel/Process.cpp index c95fb26c..21162df4 100644 --- a/kernel/kernel/Process.cpp +++ b/kernel/kernel/Process.cpp @@ -567,6 +567,11 @@ namespace Kernel auto working_directory = TRY(m_working_directory.clone()); + BAN::Vector cmdline; + TRY(cmdline.resize(m_cmdline.size())); + for (size_t i = 0; i < m_cmdline.size(); i++) + TRY(cmdline[i].append(m_cmdline[i])); + auto open_file_descriptors = TRY(BAN::UniqPtr::create(m_credentials)); TRY(open_file_descriptors->clone_from(m_open_file_descriptors)); @@ -578,6 +583,7 @@ namespace Kernel Process* forked = create_process(m_credentials, m_pid, m_sid, m_pgrp); forked->m_controlling_terminal = m_controlling_terminal; forked->m_working_directory = BAN::move(working_directory); + forked->m_cmdline = BAN::move(m_cmdline); forked->m_page_table = BAN::move(page_table); forked->m_open_file_descriptors = BAN::move(*open_file_descriptors); forked->m_mapped_regions = BAN::move(mapped_regions);