summaryrefslogtreecommitdiff
path: root/sal/osl/unx/signal.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sal/osl/unx/signal.cxx')
-rw-r--r--sal/osl/unx/signal.cxx66
1 files changed, 33 insertions, 33 deletions
diff --git a/sal/osl/unx/signal.cxx b/sal/osl/unx/signal.cxx
index 00c3ca3f522e..79721def6c5e 100644
--- a/sal/osl/unx/signal.cxx
+++ b/sal/osl/unx/signal.cxx
@@ -334,43 +334,43 @@ void callSystemHandler(int signal, siginfo_t * info, void * context)
break;
}
- if (i < NoSignals)
+ if (i >= NoSignals)
+ return;
+
+ if ((Signals[i].Handler == SIG_DFL) ||
+ (Signals[i].Handler == SIG_IGN) ||
+ (Signals[i].Handler == SIG_ERR))
{
- if ((Signals[i].Handler == SIG_DFL) ||
- (Signals[i].Handler == SIG_IGN) ||
- (Signals[i].Handler == SIG_ERR))
+ switch (Signals[i].Action)
{
- switch (Signals[i].Action)
- {
- case ACT_EXIT: /* terminate */
- /* prevent dumping core on exit() */
- _exit(255);
- break;
-
- case ACT_ABORT: /* terminate with core dump */
- struct sigaction act;
- act.sa_handler = SIG_DFL;
- act.sa_flags = 0;
- sigemptyset(&(act.sa_mask));
- sigaction(SIGABRT, &act, nullptr);
- printStack( signal );
- abort();
- break;
-
- case ACT_IGNORE: /* ignore */
- break;
-
- default: /* should never happen */
- OSL_ASSERT(false);
- }
- }
- else if (Signals[i].siginfo) {
- (*reinterpret_cast<Handler2>(Signals[i].Handler))(
- signal, info, context);
- } else {
- (*Signals[i].Handler)(signal);
+ case ACT_EXIT: /* terminate */
+ /* prevent dumping core on exit() */
+ _exit(255);
+ break;
+
+ case ACT_ABORT: /* terminate with core dump */
+ struct sigaction act;
+ act.sa_handler = SIG_DFL;
+ act.sa_flags = 0;
+ sigemptyset(&(act.sa_mask));
+ sigaction(SIGABRT, &act, nullptr);
+ printStack( signal );
+ abort();
+ break;
+
+ case ACT_IGNORE: /* ignore */
+ break;
+
+ default: /* should never happen */
+ OSL_ASSERT(false);
}
}
+ else if (Signals[i].siginfo) {
+ (*reinterpret_cast<Handler2>(Signals[i].Handler))(
+ signal, info, context);
+ } else {
+ (*Signals[i].Handler)(signal);
+ }
}
#if defined HAVE_VALGRIND_HEADERS