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