diff options
Diffstat (limited to 'src/libserver/cfg_utils.c')
-rw-r--r-- | src/libserver/cfg_utils.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/libserver/cfg_utils.c b/src/libserver/cfg_utils.c index 25015c269..dd2578c91 100644 --- a/src/libserver/cfg_utils.c +++ b/src/libserver/cfg_utils.c @@ -124,10 +124,12 @@ struct rspamd_config * rspamd_config_new (enum rspamd_config_init_flags flags) { struct rspamd_config *cfg; + rspamd_mempool_t *pool; - cfg = g_malloc0 (sizeof (*cfg)); + pool = rspamd_mempool_new (8 * 1024 * 1024, "cfg"); + cfg = rspamd_mempool_alloc0 (pool, sizeof (*cfg)); /* Allocate larger pool for cfg */ - cfg->cfg_pool = rspamd_mempool_new (8 * 1024 * 1024, "cfg"); + cfg->cfg_pool = pool; cfg->dns_timeout = 1.0; cfg->dns_retransmits = 5; /* 16 sockets per DNS server */ @@ -311,7 +313,7 @@ rspamd_config_free (struct rspamd_config *cfg) HASH_CLEAR (hh, cfg->actions); - rspamd_mempool_delete (cfg->cfg_pool); + rspamd_mempool_destructors_enforce (cfg->cfg_pool); if (cfg->checksum) { g_free (cfg->checksum); @@ -324,7 +326,7 @@ rspamd_config_free (struct rspamd_config *cfg) g_free (lp); } - g_free (cfg); + rspamd_mempool_delete (cfg->cfg_pool); } const ucl_object_t * |