tree-wide: only use .si_pid field in siginfo_t, if .si_code indicates that's safe

Fixes: #37498
This commit is contained in:
Lennart Poettering
2025-05-31 14:48:37 +02:00
committed by Zbigniew Jędrzejewski-Szmek
parent 91c60ff528
commit 1105f8d20f
7 changed files with 62 additions and 4 deletions
+5 -1
View File
@@ -104,7 +104,11 @@ _noreturn_ static void crash(int sig, siginfo_t *siginfo, void *context) {
siginfo_t status;
if (siginfo) {
if (siginfo->si_pid == 0)
if (!si_code_from_process(siginfo->si_code))
log_struct(LOG_EMERG,
LOG_MESSAGE("Caught <%s>.", signal_to_string(sig)),
LOG_MESSAGE_ID(SD_MESSAGE_CRASH_UNKNOWN_SIGNAL_STR));
else if (siginfo->si_pid == 0)
log_struct(LOG_EMERG,
LOG_MESSAGE("Caught <%s>, from unknown sender process.", signal_to_string(sig)),
LOG_MESSAGE_ID(SD_MESSAGE_CRASH_UNKNOWN_SIGNAL_STR));