From: Vsevolod Stakhov Date: Fri, 16 Apr 2021 09:55:12 +0000 (+0100) Subject: [Minor] Sanity check as ctors order is not defined X-Git-Tag: 3.0~487 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=cf6947e857f16a48652abd2a77becf6c05a6c106;p=thirdparty%2Frspamd.git [Minor] Sanity check as ctors order is not defined Issue: #3721 --- diff --git a/src/libutil/mem_pool.c b/src/libutil/mem_pool.c index b92579e367..7ade924405 100644 --- a/src/libutil/mem_pool.c +++ b/src/libutil/mem_pool.c @@ -129,7 +129,9 @@ rspamd_mempool_entry_new (const gchar *loc) RSPAMD_CONSTRUCTOR (rspamd_mempool_entries_ctor) { - mempool_entries = kh_init (mempool_entry); + if (mempool_entries == NULL) { + mempool_entries = kh_init (mempool_entry); + } } RSPAMD_DESTRUCTOR (rspamd_mempool_entries_dtor) @@ -150,6 +152,10 @@ rspamd_mempool_get_entry (const gchar *loc) khiter_t k; struct rspamd_mempool_entry_point *elt; + if (G_UNLIKELY (!mempool_entries)) { + rspamd_mempool_entries_ctor(); + } + k = kh_get (mempool_entry, mempool_entries, loc); if (k != kh_end (mempool_entries)) { @@ -158,10 +164,9 @@ rspamd_mempool_get_entry (const gchar *loc) return elt; } - return rspamd_mempool_entry_new (loc); + return rspamd_mempool_entry_new(loc); } - static struct _pool_chain * rspamd_mempool_chain_new (gsize size, enum rspamd_mempool_chain_type pool_type) {