From fb304035c41c7ee2afede51e5e8568974549ba5e Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Wed, 25 Nov 2015 01:09:13 +0100 Subject: 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. --- hurd/sigunwind.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'hurd/sigunwind.c') diff --git a/hurd/sigunwind.c b/hurd/sigunwind.c index 3a62fb5..800bb30 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); -- cgit v1.1