commit 2249d42: [Fix] Adjust length of the fuzzy checks for short text parts
Vsevolod Stakhov
vsevolod at rspamd.com
Tue Aug 2 20:21:03 UTC 2022
Author: Vsevolod Stakhov
Date: 2022-08-02 21:12:38 +0100
URL: https://github.com/rspamd/rspamd/commit/2249d428bd8f27d8e952233c4a15a75f69b12316
[Fix] Adjust length of the fuzzy checks for short text parts
Reported by: @citrin
---
lualib/lua_fuzzy.lua | 6 +++++-
src/lua/lua_mimepart.c | 6 +-----
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/lualib/lua_fuzzy.lua b/lualib/lua_fuzzy.lua
index 1f82752f9..ce4ac55ee 100644
--- a/lualib/lua_fuzzy.lua
+++ b/lualib/lua_fuzzy.lua
@@ -126,7 +126,11 @@ local function check_length(task, part, rule)
local adjusted_bytes = bytes
if part:is_text() then
- bytes = part:get_text():get_length()
+ -- Fuzzy plugin uses stripped utf content to get an exact hash, that
+ -- corresponds to `get_content_oneline()`
+ -- However, in the case of empty parts this method returns `nil`, so extra
+ -- sanity check is required.
+ bytes = #(part:get_text():get_content_oneline() or '')
if rule.text_multiplier then
adjusted_bytes = bytes * rule.text_multiplier
end
diff --git a/src/lua/lua_mimepart.c b/src/lua/lua_mimepart.c
index ae959c34e..459a78e69 100644
--- a/src/lua/lua_mimepart.c
+++ b/src/lua/lua_mimepart.c
@@ -803,11 +803,7 @@ lua_textpart_get_content_oneline (lua_State * L)
return 1;
}
- t = lua_newuserdata (L, sizeof (*t));
- rspamd_lua_setclass (L, "rspamd{text}", -1);
- t->start = part->utf_stripped_content->data;
- t->len = part->utf_stripped_content->len;
- t->flags = 0;
+ lua_new_text(L, part->utf_stripped_content->data, part->utf_stripped_content->len, FALSE);
return 1;
}
More information about the Commits
mailing list