From 154c7aad9ceafac37833e31c07a816e560fa6050 Mon Sep 17 00:00:00 2001 From: Art Cancro Date: Sat, 22 Jul 2023 06:53:46 -0900 Subject: [PATCH] Try to close the databases if we segfault --- citadel/server/sysdep.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/citadel/server/sysdep.c b/citadel/server/sysdep.c index 21ba4c7b0..3664a79b0 100644 --- a/citadel/server/sysdep.c +++ b/citadel/server/sysdep.c @@ -45,6 +45,7 @@ volatile int running_as_daemon = 0; static RETSIGTYPE signal_cleanup(int signum) { syslog(LOG_DEBUG, "sysdep: caught signal %d", signum); + signal(signum, SIG_DFL); exit_signal = signum; server_shutting_down = 1; } @@ -85,11 +86,13 @@ void init_sysdep(void) { sigaddset(&set, SIGINT); sigaddset(&set, SIGHUP); sigaddset(&set, SIGTERM); + sigaddset(&set, SIGSEGV); sigprocmask(SIG_UNBLOCK, &set, NULL); signal(SIGINT, signal_cleanup); signal(SIGHUP, signal_cleanup); signal(SIGTERM, signal_cleanup); + signal(SIGSEGV, signal_cleanup); // Do not shut down the server on broken pipe signals, otherwise the // whole Citadel service would come down whenever a single client -- 2.39.2