summaryrefslogtreecommitdiff
path: root/init
diff options
context:
space:
mode:
authornamilsk <namilsk@namilsk.tech>2026-01-10 22:28:02 +0300
committernamilsk <namilsk@namilsk.tech>2026-01-10 22:28:02 +0300
commitdf2a2b696d5fa70b630779940aed7a3ee33eaee8 (patch)
treef7a855b5fb5cbd80ab98ad0cf80a5498d015c7ac /init
parentd114acb6103706e56f7d2090569c354987033d7e (diff)
Fixed some security issues, `.wait()?` call for `udev`. Fixed one panic-possibility and started implementing killing zombie-processes funtional
Diffstat (limited to 'init')
-rw-r--r--init/src/signals/sigchld.rs18
1 files changed, 18 insertions, 0 deletions
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;
+ }
+ }
+
+}
+
+