]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[CritFix] Fix maps after reload
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 18 Jun 2018 11:54:16 +0000 (12:54 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 18 Jun 2018 11:54:16 +0000 (12:54 +0100)
Issue: #2293

src/libserver/cfg_utils.c
src/libutil/util.c
src/rspamd.c

index 284a4067225874c3f70fd60424a9a5b1a2d6faf3..48c4d5eed976db876135f84cb28f1722059e8be3 100644 (file)
@@ -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);
 
index 3193f8e8d2746e90c4c27f669559cf712272fede..4616bedc065a60f4eef9ac34cc526596901001a0 100644 (file)
@@ -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);
index 7a2ce2daa7b6801e1f19c7cba448295aaf806f9b..d7543643e28da11ce226ee270d6ee9e4024c3d7e 100644 (file)
@@ -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,