summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--hurd/hurdsig.c6
2 files changed, 10 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 2f5b3edfd5..8175e0b6df 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,7 +1,11 @@
 1998-11-11  Roland McGrath  <roland@baalperazim.frob.com>
 
+	* hurd/hurdsig.c (_hurdsig_init): Add assertion that no pending,
+	unblocked signals are set in the startup masks.
+
 	* hurd/hurdsig.c (_hurdsig_init): Take new args, INTARRAY and
 	INTARRAYSIZE.  Initialize main thread's sigstate from INIT_SIG* ints.
+
 	* hurd/hurd/signal.h: Update _hurdsig_init decl.
 	* hurd/hurdinit.c (_hurd_proc_init): Take new args, INTARRAY and
 	INTARRAYSIZE, pass them down to _hurdsig_init.
diff --git a/hurd/hurdsig.c b/hurd/hurdsig.c
index 67f5bd0fe6..1c1a22932c 100644
--- a/hurd/hurdsig.c
+++ b/hurd/hurdsig.c
@@ -1236,6 +1236,12 @@ _hurdsig_init (const int *intarray, size_t intarraysize)
   /* Receive exceptions on the signal port.  */
   __task_set_special_port (__mach_task_self (),
 			   TASK_EXCEPTION_PORT, _hurd_msgport);
+
+  /* Sanity check.  Any pending, unblocked signals should have been
+     taken by our predecessor incarnation (i.e. parent or pre-exec state)
+     before packing up our init ints.  This assert is last (not above)
+     so that signal handling is all set up to handle the abort.  */
+  assert ((ss->pending &~ ss->blocked) == 0);
 }
 				/* XXXX */
 /* Reauthenticate with the proc server.  */