Browse Source

[Fix] Disable text detection heuristics for encrypted parts

Issue: #3349
pull/3356/head
Vsevolod Stakhov 6 years ago
parent
commit
a89cf52149
  1. 13
      lualib/lua_magic/heuristics.lua
  2. 5
      src/libmime/content_type.c
  3. 1
      src/libmime/content_type.h

13
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

5
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");

1
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 {

Loading…
Cancel
Save