From 0c4856250814d5fe1222a39c6954c4b5d79a829c Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Sun, 12 Jan 2025 00:09:44 +0100 Subject: [PATCH] hurd: Cope with signals sent to ourself early Typically when aborting during initialization, before signals are set up. --- sysdeps/mach/hurd/kill.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/sysdeps/mach/hurd/kill.c b/sysdeps/mach/hurd/kill.c index 1e006ee1db..8cba3cc4ea 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.