aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2016-07-07 13:03:13 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2016-07-07 13:03:29 +0100
commit362019a45e6f94756b6c40e9a336a7db88336c88 (patch)
tree5312cfa1467b3d64663a3b0fcdb9fbb68908f444 /src
parent7a6503a6abd77041bab224626551ed07b696b714 (diff)
downloadrspamd-362019a45e6f94756b6c40e9a336a7db88336c88.tar.gz
rspamd-362019a45e6f94756b6c40e9a336a7db88336c88.zip
[Fix] Fix dkim private keys operations
Diffstat (limited to 'src')
-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;