From df2a2b696d5fa70b630779940aed7a3ee33eaee8 Mon Sep 17 00:00:00 2001 From: namilsk Date: Sat, 10 Jan 2026 22:28:02 +0300 Subject: Fixed some security issues, `.wait()?` call for `udev`. Fixed one panic-possibility and started implementing killing zombie-processes funtional --- init/src/signals/sigchld.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 init/src/signals/sigchld.rs diff --git a/init/src/signals/sigchld.rs b/init/src/signals/sigchld.rs new file mode 100644 index 0000000..78b72d4 --- /dev/null +++ b/init/src/signals/sigchld.rs @@ -0,0 +1,18 @@ +use libc::{signal, sighandler_t, SIGCHILD, SIG_DFL, SIG_IGN}; +use std::ffi::c_int; + +fn sigchild_handler(_signal: c_int) { + loop { + let mut status: c_int = 0; + ket pid: pid_t = unsafe { + waitpid(-1 , &mut status, WNOHANG) + }; + + if pid <= 0 { + break; + } + } + +} + + -- cgit v1.2.3