]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
One more try to fix memset.
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Tue, 19 May 2015 15:28:42 +0000 (16:28 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Tue, 19 May 2015 15:29:21 +0000 (16:29 +0100)
src/plugins/dkim_check.c
src/plugins/fuzzy_check.c
src/plugins/regexp.c
src/plugins/spf.c

index 28bdbf3c3d037ced3091094466b285f7228dfbc1..9e88ab3100c263b4dc612f414cc3a272af4675fc 100644 (file)
@@ -254,14 +254,17 @@ dkim_module_config (struct rspamd_config *cfg)
 gint
 dkim_module_reconfig (struct rspamd_config *cfg)
 {
+       struct module_ctx saved_ctx;
+
+       saved_ctx = dkim_module_ctx->ctx;
        rspamd_mempool_delete (dkim_module_ctx->dkim_pool);
        radix_destroy_compressed (dkim_module_ctx->whitelist_ip);
        if (dkim_module_ctx->dkim_domains) {
                g_hash_table_destroy (dkim_module_ctx->dkim_domains);
        }
 
-       memset (dkim_module_ctx + sizeof (dkim_module_ctx->ctx),
-                               0, sizeof (*dkim_module_ctx) - sizeof (dkim_module_ctx->ctx));
+       memset (dkim_module_ctx, 0, sizeof (*dkim_module_ctx));
+       dkim_module_ctx->ctx = saved_ctx;
        dkim_module_ctx->dkim_pool = rspamd_mempool_new (
                rspamd_mempool_suggest_size ());
 
index 61966ccb93a0f6fbf13ac8be0ffbfc516a40059f..498e1485e7afe8a26db3cd3556b978600411f5ae 100644 (file)
@@ -497,10 +497,12 @@ fuzzy_check_module_config (struct rspamd_config *cfg)
 gint
 fuzzy_check_module_reconfig (struct rspamd_config *cfg)
 {
-       rspamd_mempool_delete (fuzzy_module_ctx->fuzzy_pool);
+       struct module_ctx saved_ctx;
 
-       memset (fuzzy_module_ctx + sizeof (fuzzy_module_ctx->ctx),
-                       0, sizeof (*fuzzy_module_ctx) - sizeof (fuzzy_module_ctx->ctx));
+       saved_ctx = fuzzy_module_ctx->ctx;
+       rspamd_mempool_delete (fuzzy_module_ctx->fuzzy_pool);
+       memset (fuzzy_module_ctx, 0, sizeof (*fuzzy_module_ctx));
+       fuzzy_module_ctx->ctx = saved_ctx;
        fuzzy_module_ctx->fuzzy_pool = rspamd_mempool_new (
                rspamd_mempool_suggest_size ());
        fuzzy_module_ctx->cfg = cfg;
index 59f5427df17d4e7fb402268e5172f4a267713b3f..8df81a9e6cdd56ccf2362d5d17a89baa9d5781ae 100644 (file)
@@ -172,7 +172,12 @@ regexp_module_config (struct rspamd_config *cfg)
 gint
 regexp_module_reconfig (struct rspamd_config *cfg)
 {
+       struct module_ctx saved_ctx;
+
+       saved_ctx = regexp_module_ctx->ctx;
        rspamd_mempool_delete (regexp_module_ctx->regexp_pool);
+       memset (regexp_module_ctx, 0, sizeof (*regexp_module_ctx));
+       regexp_module_ctx->ctx = saved_ctx;
        regexp_module_ctx->regexp_pool = rspamd_mempool_new (
                rspamd_mempool_suggest_size ());
 
index c444199bac104451f1b7fd4335c38046a77b3b91..8e03334fbe3548c9cf5387f8d8ac1c69ce9f0fa9 100644 (file)
@@ -172,10 +172,13 @@ spf_module_config (struct rspamd_config *cfg)
 gint
 spf_module_reconfig (struct rspamd_config *cfg)
 {
+       struct module_ctx saved_ctx;
+
+       saved_ctx = spf_module_ctx->ctx;
        rspamd_mempool_delete (spf_module_ctx->spf_pool);
        radix_destroy_compressed (spf_module_ctx->whitelist_ip);
-       memset (spf_module_ctx + sizeof (spf_module_ctx->ctx),
-                               0, sizeof (*spf_module_ctx) - sizeof (spf_module_ctx->ctx));
+       memset (spf_module_ctx, 0, sizeof (*spf_module_ctx));
+       spf_module_ctx->ctx = saved_ctx;
        spf_module_ctx->spf_pool = rspamd_mempool_new (
                rspamd_mempool_suggest_size ());