- update to 2.0 https://rspamd.com/announce/2019/10/11/rspamd-2.0.html Please verify the upgrade notes for incompatible changes: https://rspamd.com/doc/migration.html#migration-to-rspamd-20 - changed build requires - added rspamd-fix-crash-on-startup.patch to fix startup crash (https://github.com/rspamd/rspamd/issues/3079) OBS-URL: https://build.opensuse.org/request/show/738136 OBS-URL: https://build.opensuse.org/package/show/server:mail/rspamd?expand=0&rev=33
69 lines
2.0 KiB
Diff
69 lines
2.0 KiB
Diff
From 42a4b088c79eb86aa44cd44ce7d19c862e5289b9 Mon Sep 17 00:00:00 2001
|
|
From: Vsevolod Stakhov <vsevolod@highsecure.ru>
|
|
Date: Sat, 12 Oct 2019 09:53:08 +0100
|
|
Subject: [PATCH] [Fix] Fix crash due to constructors init order
|
|
|
|
Issue: #3079
|
|
---
|
|
src/libutil/mem_pool.c | 5 +++--
|
|
src/lua/lua_regexp.c | 10 +++++-----
|
|
2 files changed, 8 insertions(+), 7 deletions(-)
|
|
|
|
diff --git a/src/libutil/mem_pool.c b/src/libutil/mem_pool.c
|
|
index 703337663..c01ce0c2c 100644
|
|
--- a/src/libutil/mem_pool.c
|
|
+++ b/src/libutil/mem_pool.c
|
|
@@ -111,7 +111,7 @@ pool_chain_free (struct _pool_chain *chain)
|
|
chain->slice_size - occupied : 0);
|
|
}
|
|
|
|
-/* By default allocate 8Kb chunks of memory */
|
|
+/* By default allocate 4Kb chunks of memory */
|
|
#define FIXED_POOL_SIZE 4096
|
|
|
|
static inline struct rspamd_mempool_entry_point *
|
|
@@ -156,6 +156,7 @@ RSPAMD_DESTRUCTOR (rspamd_mempool_entries_dtor)
|
|
});
|
|
|
|
kh_destroy (mempool_entry, mempool_entries);
|
|
+ mempool_entries = NULL;
|
|
}
|
|
|
|
static inline struct rspamd_mempool_entry_point *
|
|
@@ -676,7 +677,7 @@ rspamd_mempool_delete (rspamd_mempool_t * pool)
|
|
cur = pool->pools[RSPAMD_MEMPOOL_NORMAL];
|
|
}
|
|
|
|
- if (cur) {
|
|
+ if (cur && mempool_entries) {
|
|
pool->entry->elts[pool->entry->cur_elts].leftover =
|
|
pool_chain_free (cur);
|
|
|
|
diff --git a/src/lua/lua_regexp.c b/src/lua/lua_regexp.c
|
|
index ae1f2007a..764bb6de1 100644
|
|
--- a/src/lua/lua_regexp.c
|
|
+++ b/src/lua/lua_regexp.c
|
|
@@ -889,16 +889,16 @@ lua_load_regexp (lua_State * L)
|
|
void
|
|
luaopen_regexp (lua_State * L)
|
|
{
|
|
+ if (!regexp_static_pool) {
|
|
+ regexp_static_pool = rspamd_mempool_new (rspamd_mempool_suggest_size (),
|
|
+ "regexp_lua_pool");
|
|
+ }
|
|
+
|
|
rspamd_lua_new_class (L, "rspamd{regexp}", regexplib_m);
|
|
lua_pop (L, 1);
|
|
rspamd_lua_add_preload (L, "rspamd_regexp", lua_load_regexp);
|
|
}
|
|
|
|
-RSPAMD_CONSTRUCTOR (lua_re_static_pool_ctor) {
|
|
- regexp_static_pool = rspamd_mempool_new (rspamd_mempool_suggest_size (),
|
|
- "regexp_lua_pool");
|
|
-}
|
|
-
|
|
RSPAMD_DESTRUCTOR (lua_re_static_pool_dtor) {
|
|
rspamd_mempool_delete (regexp_static_pool);
|
|
}
|
|
\ No newline at end of file
|