aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--rules/misc.lua13
1 files changed, 13 insertions, 0 deletions
diff --git a/rules/misc.lua b/rules/misc.lua
index 7d3682271..5dcf6ea05 100644
--- a/rules/misc.lua
+++ b/rules/misc.lua
@@ -685,12 +685,14 @@ local check_encrypted_name = rspamd_config:register_symbol{
local function check_part(part)
if part:is_multipart() then
local children = part:get_children() or {}
+ local text_kids = {}
for _,cld in ipairs(children) do
if cld:is_multipart() then
check_part(cld)
elseif cld:is_text() then
seen_text = true
+ text_kids[#text_kids + 1] = cld
else
local type,subtype,_ = cld:get_type_full()
@@ -712,6 +714,17 @@ local check_encrypted_name = rspamd_config:register_symbol{
end
end
end
+ if seen_text and seen_encrypted then
+ -- Ensure that our seen text is not really part of pgp #3205
+ for _,tp in ipairs(text_kids) do
+ local t,_ = tp:get_type()
+ seen_text = false -- reset temporary
+ if t and t == 'text' then
+ seen_text = true
+ break
+ end
+ end
+ end
end
end
end