SIGFPE is normally a synchronous signal, which would not be handled by
opr softsig. However, bosserver uses SIGFPE as an asynchronous signal
to modify the local restricted mode. So allow SIGFPE in softsig
handlers, so bosserver can use softsig.
Change-Id: I413edbed967babb3e60c6fa97f89b40b8d7b3ad7
Reviewed-on: https://gerrit.openafs.org/14080
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
sigdelset(set, SIGCONT);
sigdelset(set, SIGABRT);
sigdelset(set, SIGBUS);
- sigdelset(set, SIGFPE);
sigdelset(set, SIGILL);
sigdelset(set, SIGPIPE);
sigdelset(set, SIGSEGV);
opr_Verify(opr_softsig_Register(SIGQUIT, ExitHandler) == 0);
opr_Verify(opr_softsig_Register(SIGTSTP, StopHandler) == 0);
+ /*
+ * Some of our callers do actually specify a SIGFPE handler, but make sure
+ * the default SIGFPE behavior does actually terminate the process, in case
+ * we get a real FPE.
+ */
+ opr_Verify(opr_softsig_Register(SIGFPE, ExitHandler) == 0);
+
/* Create a signal handler thread which will respond to any incoming signals
* for us. */
opr_Verify(pthread_create(&handlerThread, NULL, signalHandler, NULL) == 0);