diff --git a/kernel/signal.c b/kernel/signal.c index b3ce3ca3cd5f0f234d6a6504737aef302603b6b8..45f28ca4411a8f43c663a08e1dc64b1870f3a220 100644 --- a/kernel/signal.c +++ b/kernel/signal.c @@ -2433,9 +2433,12 @@ bool get_signal(struct ksignal *ksig) } /* Has this task already been marked for death? */ - ksig->info.si_signo = signr = SIGKILL; - if (signal_group_exit(signal)) + if (signal_group_exit(signal)) { + ksig->info.si_signo = signr = SIGKILL; + sigdelset(¤t->pending.signal, SIGKILL); + recalc_sigpending(); goto fatal; + } for (;;) { struct k_sigaction *ka;