commit 5bc16cb: [Minor] Dkim_signing: NDR are not DKIM signed
Vsevolod Stakhov
vsevolod at highsecure.ru
Mon Jun 3 16:14:05 UTC 2019
Author: Vsevolod Stakhov
Date: 2019-06-03 16:10:19 +0100
URL: https://github.com/rspamd/rspamd/commit/5bc16cb715d8d8849efa9f8b46da4657e0ccd2ec
[Minor] Dkim_signing: NDR are not DKIM signed
Issue: #2901
---
lualib/lua_dkim_tools.lua | 21 +++++++++++++++------
1 file changed, 15 insertions(+), 6 deletions(-)
diff --git a/lualib/lua_dkim_tools.lua b/lualib/lua_dkim_tools.lua
index 4ca1a662f..f61e38ae9 100644
--- a/lualib/lua_dkim_tools.lua
+++ b/lualib/lua_dkim_tools.lua
@@ -172,10 +172,14 @@ local function prepare_dkim_signing(N, task, settings)
end
local efrom = task:get_from('smtp')
- if not settings.allow_envfrom_empty and
- #(((efrom or E)[1] or E).addr or '') == 0 then
- lua_util.debugm(N, task, 'empty envelope from not allowed')
- return false,{}
+ local empty_envelope = false
+ if #(((efrom or E)[1] or E).addr or '') == 0 then
+ if not settings.allow_envfrom_empty then
+ lua_util.debugm(N, task, 'empty envelope from not allowed')
+ return false,{}
+ else
+ empty_envelope = true
+ end
end
local hfrom = task:get_from('mime')
@@ -242,6 +246,7 @@ local function prepare_dkim_signing(N, task, settings)
local sign_entry = settings.signing_table:get_key(hfrom[1].addr)
if sign_entry then
+ -- Check opendkim style entries
lua_util.debugm(N, task,
'signing_table: found entry for %s: %s', hfrom[1].addr, sign_entry)
if sign_entry == '%' then
@@ -403,8 +408,12 @@ local function prepare_dkim_signing(N, task, settings)
elseif settings.allow_hdrfrom_mismatch_sign_networks and is_sign_networks then
lua_util.debugm(N, task, 'domain mismatch allowed for sign_networks: %1 != %2', hdom, edom)
else
- lua_util.debugm(N, task, 'domain mismatch not allowed: %1 != %2', hdom, edom)
- return false,{}
+ if empty_envelope and hdom then
+ lua_util.debugm(N, task, 'domain mismatch allowed for empty envelope: %1 != %2', hdom, edom)
+ else
+ lua_util.debugm(N, task, 'domain mismatch not allowed: %1 != %2', hdom, edom)
+ return false,{}
+ end
end
end
More information about the Commits
mailing list