summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--rpmio/rpmsq.c6
-rw-r--r--rpmio/rpmsq.h2
2 files changed, 7 insertions, 1 deletions
diff --git a/rpmio/rpmsq.c b/rpmio/rpmsq.c
index f4d8a8712..cd9e4ce96 100644
--- a/rpmio/rpmsq.c
+++ b/rpmio/rpmsq.c
@@ -173,6 +173,12 @@ int rpmsqBlock(int op)
blocked++;
if (blocked == 1) {
sigfillset(&newMask);
+ sigdelset(&newMask, SIGABRT);
+ sigdelset(&newMask, SIGBUS);
+ sigdelset(&newMask, SIGFPE);
+ sigdelset(&newMask, SIGILL);
+ sigdelset(&newMask, SIGSEGV);
+ sigdelset(&newMask, SIGTSTP);
ret = pthread_sigmask(SIG_BLOCK, &newMask, &oldMask);
}
} else if (op == SIG_UNBLOCK) {
diff --git a/rpmio/rpmsq.h b/rpmio/rpmsq.h
index 8cb2dc324..bffa9d447 100644
--- a/rpmio/rpmsq.h
+++ b/rpmio/rpmsq.h
@@ -45,7 +45,7 @@ int rpmsqActivate(int state);
rpmsqAction_t rpmsqSetAction(int signum, rpmsqAction_t handler);
/** \ingroup rpmsq
- * Block or unblock (all) signals.
+ * Block or unblock (almost) all signals.
* The operation is "reference counted" so the calls can be nested,
* and signals are only unblocked when the reference count falls to zero.
* @param op SIG_BLOCK/SIG_UNBLOCK