]> sourceware.org Git - glibc.git/commitdiff
hurd: Restore destroying receive rights on sigreturn
authorSamuel Thibault <samuel.thibault@ens-lyon.org>
Wed, 12 Apr 2023 20:44:50 +0000 (20:44 +0000)
committerSamuel Thibault <samuel.thibault@ens-lyon.org>
Wed, 12 Apr 2023 22:49:16 +0000 (00:49 +0200)
Just subtracting a ref is making signal/tst-signal signal/tst-raise
signal/tst-minsigstksz-5 htl/tst-raise1 fail.

sysdeps/mach/hurd/i386/sigreturn.c

index 29c9629f45baa2e1297d66bb8c6ba5539fae6481..4f196710694cce16a893823c98d3d81f82d05632 100644 (file)
@@ -102,8 +102,8 @@ __sigreturn (struct sigcontext *scp)
      reply port in use by the thread when interrupted.  */
   reply_port = THREAD_GETMEM (THREAD_SELF, reply_port);
   THREAD_SETMEM (THREAD_SELF, reply_port, scp->sc_reply_port);
-  __mach_port_mod_refs (__mach_task_self (), reply_port,
-                        MACH_PORT_RIGHT_RECEIVE, -1);
+  if (MACH_PORT_VALID (reply_port))
+    __mach_port_destroy (__mach_task_self (), reply_port);
 
   if (scp->sc_fpused)
     /* Restore the FPU state.  Mach conveniently stores the state
This page took 0.045623 seconds and 5 git commands to generate.