From c7298edf650c5c639835f4403ed3bfd59602f360 Mon Sep 17 00:00:00 2001 From: Bananymous Date: Fri, 29 Aug 2025 01:41:18 +0300 Subject: [PATCH] Kernel: Clone executable path on fork Before this forked processes had empty executables --- kernel/kernel/Process.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/kernel/kernel/Process.cpp b/kernel/kernel/Process.cpp index 8e738ab9..9e8cf817 100644 --- a/kernel/kernel/Process.cpp +++ b/kernel/kernel/Process.cpp @@ -605,6 +605,9 @@ namespace Kernel auto working_directory = TRY(m_working_directory.clone()); auto root_file = TRY(m_root_file.clone()); + BAN::String executable; + TRY(executable.append(m_executable)); + BAN::Vector cmdline; TRY(cmdline.resize(m_cmdline.size())); for (size_t i = 0; i < m_cmdline.size(); i++) @@ -629,6 +632,7 @@ namespace Kernel forked->m_root_file = BAN::move(root_file); forked->m_cmdline = BAN::move(cmdline); forked->m_environ = BAN::move(environ); + forked->m_executable = BAN::move(executable); 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);