summaryrefslogtreecommitdiff
path: root/src/basic/sigbus.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2022-11-16 18:54:29 +0100
committerYu Watanabe <watanabe.yu+github@gmail.com>2022-11-17 22:38:14 +0900
commit128a11ea9905ee3a9d2c6baeaf65618a21272f97 (patch)
treecc1c7d4a26fff9f9ded817ac0aecb37811ab0ec6 /src/basic/sigbus.c
parent58dad4d5e585a6c18452dd97153ec0f2d240c2d8 (diff)
downloadsystemd-128a11ea9905ee3a9d2c6baeaf65618a21272f97.tar.gz
signal-util: add common implementation for propagating a signal
i.e. let's add a common logic to be called from a signal handler to raise the passed signal again. Follow-up for: #25399
Diffstat (limited to 'src/basic/sigbus.c')
-rw-r--r--src/basic/sigbus.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/basic/sigbus.c b/src/basic/sigbus.c
index 0dca7be479..7e5a493f6b 100644
--- a/src/basic/sigbus.c
+++ b/src/basic/sigbus.c
@@ -10,6 +10,7 @@
#include "missing_syscall.h"
#include "process-util.h"
#include "sigbus.h"
+#include "signal-util.h"
#define SIGBUS_QUEUE_MAX 64
@@ -102,8 +103,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);
- if (rt_tgsigqueueinfo(getpid_cached(), gettid(), SIGBUS, si) < 0)
- (void) raise(SIGBUS);
+ propagate_signal(sn, si);
return;
}