aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/libserver/dkim.c4
-rw-r--r--src/plugins/dkim_check.c3
2 files changed, 5 insertions, 2 deletions
diff --git a/src/libserver/dkim.c b/src/libserver/dkim.c
index 136c24d0b..cdad6365c 100644
--- a/src/libserver/dkim.c
+++ b/src/libserver/dkim.c
@@ -2036,6 +2036,10 @@ rspamd_dkim_sign_key_load (const gchar *path, GError **err)
}
nkey = g_slice_alloc0 (sizeof (*nkey));
+#ifdef MADV_ZERO_WIRED_PAGES
+ madvise (map, len, MADV_ZERO_WIRED_PAGES);
+#endif
+ (void)mlock (map, len);
nkey->keydata = map;
nkey->keylen = len;
diff --git a/src/plugins/dkim_check.c b/src/plugins/dkim_check.c
index 1c0ccad68..b405afed0 100644
--- a/src/plugins/dkim_check.c
+++ b/src/plugins/dkim_check.c
@@ -764,7 +764,7 @@ dkim_sign_callback (struct rspamd_task *task, void *unused)
}
rspamd_lru_hash_insert (dkim_module_ctx->dkim_sign_hash,
- g_strdup (key), rspamd_dkim_sign_key_ref (dkim_key),
+ g_strdup (key), dkim_key,
time (NULL), 0);
}
@@ -775,7 +775,6 @@ dkim_sign_callback (struct rspamd_task *task, void *unused)
if (ctx == NULL) {
msg_err_task ("cannot create sign context: %e",
key, err);
- rspamd_dkim_sign_key_unref (dkim_key);
g_error_free (err);
return;