From a8e2578febbb71d1b788c7270c2be57ca1e64dec Mon Sep 17 00:00:00 2001 From: Andrew Gregory Date: Fri, 4 Dec 2015 14:27:41 -0500 Subject: remove soft interrupt handler before cleanup The soft interrupt handler dereferences config, causing a segfault if it is called during cleanup. Signed-off-by: Andrew Gregory Signed-off-by: Allan McRae --- src/pacman/sighandler.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/pacman/sighandler.c') diff --git a/src/pacman/sighandler.c b/src/pacman/sighandler.c index e88375aa..3f18b5c7 100644 --- a/src/pacman/sighandler.c +++ b/src/pacman/sighandler.c @@ -74,6 +74,16 @@ void install_soft_interrupt_handler(void) sigaction(SIGHUP, &new_action, NULL); } +void remove_soft_interrupt_handler(void) +{ + struct sigaction new_action; + sigemptyset(&new_action.sa_mask); + new_action.sa_handler = SIG_DFL; + new_action.sa_flags = 0; + sigaction(SIGINT, &new_action, NULL); + sigaction(SIGHUP, &new_action, NULL); +} + static void segv_handler(int signum) { const char msg[] = "\nerror: segmentation fault\n" -- cgit v1.2.3