diff options
-rw-r--r-- | rpmio/rpmsq.c | 6 | ||||
-rw-r--r-- | rpmio/rpmsq.h | 2 |
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 |