aboutsummaryrefslogtreecommitdiffstats
path: root/libtest/libtest_stack_on_signal.c
diff options
context:
space:
mode:
Diffstat (limited to 'libtest/libtest_stack_on_signal.c')
-rw-r--r--libtest/libtest_stack_on_signal.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/libtest/libtest_stack_on_signal.c b/libtest/libtest_stack_on_signal.c
index 0f92972..f10155a 100644
--- a/libtest/libtest_stack_on_signal.c
+++ b/libtest/libtest_stack_on_signal.c
@@ -62,6 +62,14 @@ libtest_stack_on_signal(int signo, struct sigaction *old_out)
void
libtest_stop_stack_on_signal(int signo, const struct sigaction *old)
{
+ struct sigaction sa;
+
+ if (!old) {
+ memset(&sa, 0, sizeof(sa));
+ sa.sa_handler = SIG_DFL;
+ old = &sa;
+ }
+
assert(!sigaction(signo, old, NULL));
destroy_altstack();
}