From 6d5d0eb61e72afebf4df7edd55b854c546974cd3 Mon Sep 17 00:00:00 2001
From: 4lDO2 <4lDO2@protonmail.com>
Date: Mon, 1 Jul 2024 17:35:19 +0200
Subject: [PATCH] Set initial sigactions to SIG_DFL and correct bits.

---
 redox-rt/src/signal.rs | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/redox-rt/src/signal.rs b/redox-rt/src/signal.rs
index ccb64d45..af56b334 100644
--- a/redox-rt/src/signal.rs
+++ b/redox-rt/src/signal.rs
@@ -389,6 +389,17 @@ const fn sig_bit(sig: usize) -> u64 {
 pub fn setup_sighandler(area: &RtSigarea) {
     {
         let mut sigactions = SIGACTIONS_LOCK.lock();
+        for (sig_idx, action) in PROC_CONTROL_STRUCT.actions.iter().enumerate() {
+            let sig = sig_idx + 1;
+            let bits = if matches!(sig, SIGTSTP | SIGTTIN | SIGTTOU) {
+                SigactionFlags::SIG_SPECIFIC
+            } else if matches!(sig, SIGCHLD | SIGURG | SIGWINCH) {
+                SigactionFlags::IGNORED
+            } else {
+                SigactionFlags::empty()
+            };
+            action.first.store((u64::from(bits.bits()) << 32) | default_handler as u64, Ordering::Relaxed);
+        }
     }
     let arch = unsafe { &mut *area.arch.get() };
     {
-- 
GitLab