]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[CritFix] Fix memory leak in spf caching logic
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Sat, 14 Oct 2017 17:51:16 +0000 (18:51 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Sat, 14 Oct 2017 17:51:16 +0000 (18:51 +0100)
MFH: rspamd-1.6

src/plugins/spf.c

index 41e952eb26bdf421faf610e5d8e9532c0f1143af..09bd0fca142938513751bed987b5a556b6774e06 100644 (file)
@@ -526,15 +526,15 @@ spf_plugin_callback (struct spf_resolved *record, struct rspamd_task *task,
 
                if ((l = rspamd_lru_hash_lookup (spf_module_ctx->spf_hash,
                                        record->domain, task->tv.tv_sec)) == NULL) {
-
-                       l = spf_record_ref (record);
+                       l = record;
 
                        if (record->ttl > 0 &&
                                        !record->temp_failed &&
                                        !record->perm_failed &&
                                        !record->na) {
+
                                rspamd_lru_hash_insert (spf_module_ctx->spf_hash,
-                                               record->domain, l,
+                                               record->domain, spf_record_ref (l),
                                                task->tv.tv_sec, record->ttl);
                        }