From 2d7ceb4b433f15c2efc45183b27b0513fa963119 Mon Sep 17 00:00:00 2001 From: kamkow1 Date: Thu, 18 Sep 2025 23:31:16 +0200 Subject: [PATCH] Make subprocess inherit parent's pipe handles --- kernel/syscall/processctl.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/kernel/syscall/processctl.c b/kernel/syscall/processctl.c index 326c9f9..049d5ec 100644 --- a/kernel/syscall/processctl.c +++ b/kernel/syscall/processctl.c @@ -9,6 +9,7 @@ #include "path/path.h" #include "kprintf.h" #include "dlmalloc/malloc.h" +#include "ipc/pipe/pipe.h" #define PCTL_MP_MAX 0xff #define PCTL_PATH_MAX VFS_PATH_MAX @@ -66,6 +67,14 @@ int32_t SYSCALL5(sys_processctl, pid1, cmd1, arg1, arg2, arg3) { PROC_ARG(newproc, (*args)[i]); } + for (size_t i = 0; i < PROC_PIPEHANDLES_MAX; i++) { + if (newproc->pipes[i] != NULL) { + ipc_pipefree(newproc->pipes[i]); + dlfree(newproc->pipes[i]); + } + newproc->pipes[i] = proc->pipes[i]; + } + proc_register(newproc); ret = newproc->pid; } break;