From cf6947e857f16a48652abd2a77becf6c05a6c106 Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Fri, 16 Apr 2021 10:55:12 +0100 Subject: [PATCH] [Minor] Sanity check as ctors order is not defined Issue: #3721 --- src/libutil/mem_pool.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/libutil/mem_pool.c b/src/libutil/mem_pool.c index b92579e36..7ade92440 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) { -- 2.39.5