about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--hurd/sigunwind.c3
2 files changed, 7 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 343a936105..33ea5ab374 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2015-11-25  Samuel Thibault  <samuel.thibault@ens-lyon.org>
+
+	* hurd/sigunwind.c (_hurdsig_longjmp_from_handler): Destroy reply port
+	of interrupted RPC instead of restoring it.
+
 2015-11-24  Joseph Myers  <joseph@codesourcery.com>
 
 	* stdlib/strtod_nan.c: New file.
diff --git a/hurd/sigunwind.c b/hurd/sigunwind.c
index 3a62fb5fb9..800bb306f5 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);