commit 13d60df: [Minor] Try to silence intentional leak for sigaltstack

Vsevolod Stakhov vsevolod at highsecure.ru
Thu Jan 7 16:07:06 UTC 2021


Author: Vsevolod Stakhov
Date: 2021-01-07 16:02:59 +0000
URL: https://github.com/rspamd/rspamd/commit/13d60df725ae1943d2085fb2c66ca24154352b6d (HEAD -> master)

[Minor] Try to silence intentional leak for sigaltstack

---
 src/libserver/worker_util.c | 6 ++++--
 src/libserver/worker_util.h | 2 +-
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/libserver/worker_util.c b/src/libserver/worker_util.c
index 71bbe4860..7d7a50d35 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 c20108488..77344ac47 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


More information about the Commits mailing list