]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Minor] DMARC: Add descriptive errors; properly handle empty domain
authorAndrew Lewis <nerf@judo.za.org>
Mon, 20 Mar 2017 11:58:39 +0000 (13:58 +0200)
committerAndrew Lewis <nerf@judo.za.org>
Mon, 20 Mar 2017 12:00:11 +0000 (14:00 +0200)
src/plugins/lua/dmarc.lua

index eddb93d769bed1cbed7e3555da9a42ec4e783c62..4fe7f93cca9e480bbdda2f4de1263e0236f35512 100644 (file)
@@ -101,8 +101,14 @@ local function dmarc_callback(task)
     rspamd_logger.infox(task, "skip DMARC checks for local networks and authorized users");
     return
   end
-  if ((from or E)[1] or E).domain and not (from or E)[2] then
+  if ((from or E)[1] or E).domain and ((from or E)[1] or E).domain ~= '' and not (from or E)[2] then
     dmarc_domain = rspamd_util.get_tld(from[1]['domain'])
+  elseif (from or E)[2] then
+    task:insert_result(dmarc_symbols['na'], 1.0, 'Duplicate From header')
+    return maybe_force_action('na')
+  elseif (from or E)[1] then
+    task:insert_result(dmarc_symbols['na'], 1.0, 'No domain in From header')
+    return maybe_force_action('na')
   else
     task:insert_result(dmarc_symbols['na'], 1.0, 'No From header')
     return maybe_force_action('na')