commit a89cf52: [Fix] Disable text detection heuristics for encrypted parts
Vsevolod Stakhov
vsevolod at highsecure.ru
Tue Apr 28 14:42:07 UTC 2020
Author: Vsevolod Stakhov
Date: 2020-04-28 15:38:47 +0100
URL: https://github.com/rspamd/rspamd/commit/a89cf52149a0790378ae21440406e6ea52780b58 (HEAD -> master)
[Fix] Disable text detection heuristics for encrypted parts
Issue: #3349
---
lualib/lua_magic/heuristics.lua | 13 +++++++++++++
src/libmime/content_type.c | 5 +++++
src/libmime/content_type.h | 1 +
3 files changed, 19 insertions(+)
diff --git a/lualib/lua_magic/heuristics.lua b/lualib/lua_magic/heuristics.lua
index d9d408170..8aeafae90 100644
--- a/lualib/lua_magic/heuristics.lua
+++ b/lualib/lua_magic/heuristics.lua
@@ -377,6 +377,19 @@ exports.text_part_heuristic = function(part, log_obj)
return true
end
+ local parent = part:get_parent()
+
+ if parent then
+ local parent_type,parent_subtype = parent:get_type()
+
+ if parent_type == 'multipart' and parent_subtype == 'encrypted' then
+ -- Skip text heuristics for encrypted parts
+ lua_util.debugm(N, log_obj, "text part check: parent is encrypted, not a text part")
+
+ return false
+ end
+ end
+
local content = part:get_content()
local clen = #content
local is_text
diff --git a/src/libmime/content_type.c b/src/libmime/content_type.c
index 3de9bdb12..1540e6b23 100644
--- a/src/libmime/content_type.c
+++ b/src/libmime/content_type.c
@@ -709,6 +709,11 @@ rspamd_content_type_parse (const gchar *in,
if (rspamd_ftok_casecmp (&res->type, &srch) == 0) {
res->flags |= RSPAMD_CONTENT_TYPE_MULTIPART;
+
+ RSPAMD_FTOK_ASSIGN (&srch, "encrypted");
+ if (rspamd_ftok_casecmp (&res->subtype, &srch) == 0) {
+ res->flags |= RSPAMD_CONTENT_TYPE_ENCRYPTED;
+ }
}
else {
RSPAMD_FTOK_ASSIGN (&srch, "text");
diff --git a/src/libmime/content_type.h b/src/libmime/content_type.h
index 49bba4269..3991e6785 100644
--- a/src/libmime/content_type.h
+++ b/src/libmime/content_type.h
@@ -32,6 +32,7 @@ enum rspamd_content_type_flags {
RSPAMD_CONTENT_TYPE_MESSAGE = 1 << 3,
RSPAMD_CONTENT_TYPE_DSN = 1 << 4,
RSPAMD_CONTENT_TYPE_MISSING = 1 << 5,
+ RSPAMD_CONTENT_TYPE_ENCRYPTED = 1 << 1,
};
enum rspamd_content_param_flags {
More information about the Commits
mailing list