From: GNU Libc Maintainers Date: Sat, 15 Feb 2025 10:20:09 +0000 (+0100) Subject: git-early-kill X-Git-Tag: archive/raspbian/2.41-8+rpi1^2^2^2^2^2~61 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=6badafb49541d797b8e7ac050b3de02817b9d4ed;p=glibc.git git-early-kill commit 0c4856250814d5fe1222a39c6954c4b5d79a829c Author: Samuel Thibault Date: Sun Jan 12 00:09:44 2025 +0100 hurd: Cope with signals sent to ourself early Typically when aborting during initialization, before signals are set up. Gbp-Pq: Topic hurd-i386 Gbp-Pq: Name git-early-kill.diff --- diff --git a/sysdeps/mach/hurd/kill.c b/sysdeps/mach/hurd/kill.c index 83f586a4c..9ac3a55c1 100644 --- a/sysdeps/mach/hurd/kill.c +++ b/sysdeps/mach/hurd/kill.c @@ -17,7 +17,9 @@ #include #include +#include #include +#include #include #include #include @@ -34,6 +36,14 @@ __kill (pid_t pid, int sig) mach_port_t proc; struct hurd_userlink ulink; + if (pid == __getpid () && _hurd_msgport == MACH_PORT_NULL) + { + /* We are trying to kill ourself but we have not even initialized our own + msgport yet. Abort by hand. */ + _exit (127); + /* NOTREACHED */ + } + void kill_pid (pid_t pid) /* Kill one PID. */ { /* SIGKILL is not delivered as a normal signal.