From: Vsevolod Stakhov Date: Thu, 7 Jan 2021 16:02:59 +0000 (+0000) Subject: [Minor] Try to silence intentional leak for sigaltstack X-Git-Tag: 2.7~4 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=13d60df725ae1943d2085fb2c66ca24154352b6d;p=thirdparty%2Frspamd.git [Minor] Try to silence intentional leak for sigaltstack --- diff --git a/src/libserver/worker_util.c b/src/libserver/worker_util.c index 71bbe48601..7d7a50d35f 100644 --- a/src/libserver/worker_util.c +++ b/src/libserver/worker_util.c @@ -1607,13 +1607,14 @@ rspamd_crash_sig_handler (int sig, siginfo_t *info, void *ctx) } #endif -void +RSPAMD_NO_SANITIZE void rspamd_set_crash_handler (struct rspamd_main *rspamd_main) { #ifdef HAVE_SA_SIGINFO struct sigaction sa; #ifdef HAVE_SIGALTSTACK + void *stack_mem; stack_t ss; memset (&ss, 0, sizeof ss); @@ -1624,7 +1625,8 @@ rspamd_set_crash_handler (struct rspamd_main *rspamd_main) * I don't know any good ways to stop this behaviour. */ ss.ss_size = MAX (SIGSTKSZ, 8192 * 4); - ss.ss_sp = g_malloc0 (ss.ss_size); + stack_mem = g_malloc0 (ss.ss_size); + ss.ss_sp = stack_mem; sigaltstack (&ss, NULL); #endif saved_main = rspamd_main; diff --git a/src/libserver/worker_util.h b/src/libserver/worker_util.h index c20108488c..77344ac470 100644 --- a/src/libserver/worker_util.h +++ b/src/libserver/worker_util.h @@ -208,7 +208,7 @@ struct rspamd_worker *rspamd_fork_worker (struct rspamd_main *, /** * Sets crash signals handlers if compiled with libunwind */ -void rspamd_set_crash_handler (struct rspamd_main *); +RSPAMD_NO_SANITIZE void rspamd_set_crash_handler (struct rspamd_main *); /** * Initialise the main monitoring worker