]> git.ipfire.org Git - thirdparty/systemd.git/blobdiff - src/basic/sigbus.c
basic: Propagate SIGBUS signal info when re-raising signals
[thirdparty/systemd.git] / src / basic / sigbus.c
index 8ff060a8d1ea4145472eb5297f751be1648533f1..95ecb60fe225703139739e3dc53c6d17720f3fc7 100644 (file)
@@ -7,6 +7,8 @@
 
 #include "macro.h"
 #include "memory-util.h"
+#include "missing_syscall.h"
+#include "process-util.h"
 #include "sigbus.h"
 
 #define SIGBUS_QUEUE_MAX 64
@@ -88,7 +90,7 @@ static void sigbus_handler(int sn, siginfo_t *si, void *data) {
 
         if (si->si_code != BUS_ADRERR || !si->si_addr) {
                 assert_se(sigaction(SIGBUS, &old_sigaction, NULL) == 0);
-                raise(SIGBUS);
+                rt_sigqueueinfo(getpid_cached(), SIGBUS, si);
                 return;
         }