git-raise
authorGNU Libc Maintainers <debian-glibc@lists.debian.org>
Sun, 28 Jan 2024 22:58:14 +0000 (23:58 +0100)
committerAurelien Jarno <aurel32@debian.org>
Sun, 28 Jan 2024 22:58:14 +0000 (23:58 +0100)
Committed in 2.32

commit 785ec62dbd37b0b236c9a7fcc0ac71a2aeb472de
Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
Date:   Sun Jun 7 01:35:18 2020 +0200

    hurd: Reject raising invalid signals

    * hurd/hurd-raise.c (_hurd_raise_signal): Return  EINVAL if signo <= 0
    or signo >= NSI.

commit fab94894d5c5b25d24010f823515fb53822d6623
Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
Date:   Sun Jun 7 01:55:54 2020 +0200

    hurd: Fix hang in _hurd_raise_signal from pthread_kill

    When ss is not NULL, it is assumed to be locked.

    * hurd/hurd-raise.c (_hurd_raise_signal): Unlock before returning an
    error if ss is not NULL.

Gbp-Pq: Topic hurd-i386
Gbp-Pq: Name git-raise.diff

hurd/hurd-raise.c

index d53fd417d2231e2256c7df0c11aaf8f6af4377ad..865e498bf97709774007553cd9c052822d0395fd 100644 (file)
@@ -28,6 +28,13 @@ int
 _hurd_raise_signal (struct hurd_sigstate *ss,
                    int signo, const struct hurd_signal_detail *detail)
 {
+  if (signo <= 0 || signo >= NSIG)
+    {
+      if (ss)
+       __spin_unlock (&ss->lock);
+      return EINVAL;
+    }
+
   if (ss == NULL)
     {
       ss = _hurd_self_sigstate ();