From: Samuel Thibault Date: Wed, 25 Nov 2015 00:09:13 +0000 (+0100) Subject: Fix RPC breakage when longjumping from signal handler X-Git-Tag: glibc-2.23~171 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fb304035c41c7ee2afede51e5e8568974549ba5e;p=thirdparty%2Fglibc.git Fix RPC breakage when longjumping from signal handler * hurd/sigunwind.c (_hurdsig_longjmp_from_handler): Destroy reply port of interrupted RPC instead of restoring it. --- diff --git a/ChangeLog b/ChangeLog index 343a9361050..33ea5ab374b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2015-11-25 Samuel Thibault + + * hurd/sigunwind.c (_hurdsig_longjmp_from_handler): Destroy reply port + of interrupted RPC instead of restoring it. + 2015-11-24 Joseph Myers * stdlib/strtod_nan.c: New file. diff --git a/hurd/sigunwind.c b/hurd/sigunwind.c index 3a62fb5fb94..800bb306f50 100644 --- a/hurd/sigunwind.c +++ b/hurd/sigunwind.c @@ -50,7 +50,8 @@ _hurdsig_longjmp_from_handler (void *data, jmp_buf env, int val) *reply_port = MACH_PORT_DEAD; __mach_port_destroy (__mach_task_self (), port); } - *reply_port = scp->sc_reply_port; + if (scp->sc_reply_port) + __mach_port_destroy (__mach_task_self (), scp->sc_reply_port); } __spin_lock (&ss->lock);