From: Vsevolod Stakhov Date: Mon, 18 Jun 2018 11:54:16 +0000 (+0100) Subject: [CritFix] Fix maps after reload X-Git-Tag: 1.7.7~91 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8d393a012f52e57ab6bc7cc0c8da0c64ccd10ea9;p=thirdparty%2Frspamd.git [CritFix] Fix maps after reload Issue: #2293 --- diff --git a/src/libserver/cfg_utils.c b/src/libserver/cfg_utils.c index 284a406722..48c4d5eed9 100644 --- a/src/libserver/cfg_utils.c +++ b/src/libserver/cfg_utils.c @@ -1900,6 +1900,9 @@ rspamd_config_radix_from_ucl (struct rspamd_config *cfg, const ucl_object_t *cur, *cur_elt; const gchar *str; + /* Cleanup */ + *target = NULL; + LL_FOREACH (obj, cur_elt) { type = ucl_object_type (cur_elt); diff --git a/src/libutil/util.c b/src/libutil/util.c index 3193f8e8d2..4616bedc06 100644 --- a/src/libutil/util.c +++ b/src/libutil/util.c @@ -2189,6 +2189,19 @@ rspamd_config_libs (struct rspamd_external_libs_ctx *ctx, magic_load (ctx->libmagic, cfg->magic_file); } + rspamd_free_zstd_dictionary (ctx->in_dict); + rspamd_free_zstd_dictionary (ctx->out_dict); + + if (ctx->out_zstream) { + ZSTD_freeCStream (ctx->out_zstream); + ctx->out_zstream = NULL; + } + + if (ctx->in_zstream) { + ZSTD_freeDStream (ctx->in_zstream); + ctx->in_zstream = NULL; + } + if (cfg->zstd_input_dictionary) { ctx->in_dict = rspamd_open_zstd_dictionary ( cfg->zstd_input_dictionary); diff --git a/src/rspamd.c b/src/rspamd.c index 7a2ce2daa7..d7543643e2 100644 --- a/src/rspamd.c +++ b/src/rspamd.c @@ -289,8 +289,9 @@ reread_config (struct rspamd_main *rspamd_main) rspamd_main->cfg = tmp_cfg; if (!load_rspamd_config (rspamd_main, tmp_cfg, TRUE, - RSPAMD_CONFIG_INIT_VALIDATE|RSPAMD_CONFIG_INIT_SYMCACHE, - TRUE)) { + RSPAMD_CONFIG_INIT_VALIDATE|RSPAMD_CONFIG_INIT_SYMCACHE| + RSPAMD_CONFIG_INIT_LIBS|RSPAMD_CONFIG_INIT_URL, + TRUE)) { rspamd_main->cfg = old_cfg; rspamd_log_close_priv (rspamd_main->logger, rspamd_main->workers_uid,