소스 검색

[Fix] Neural: Add protection agains infinities

tags/2.1
Vsevolod Stakhov 4 년 전
부모
커밋
31138dd8ac
2개의 변경된 파일16개의 추가작업 그리고 6개의 파일을 삭제
  1. 15
    5
      lualib/lua_meta.lua
  2. 1
    1
      src/lua/lua_task.c

+ 15
- 5
lualib/lua_meta.lua 파일 보기

@@ -181,9 +181,11 @@ local function meta_received_function(task)
end,
fun.filter(function(rc) return not rc.flags or not rc.flags['artificial'] end, rh))

invalid_factor = invalid_factor / ntotal
secure_factor = secure_factor / ntotal
count_factor = 1.0 / ntotal
if ntotal > 0 then
invalid_factor = invalid_factor / ntotal
secure_factor = secure_factor / ntotal
count_factor = 1.0 / ntotal
end

if time_factor ~= 0 then
time_factor = 1.0 / time_factor
@@ -194,8 +196,9 @@ local function meta_received_function(task)
end

local function meta_urls_function(task)
if task:has_urls() then
return {1.0 / #(task:get_urls())}
local has_urls,nurls = task:has_urls()
if has_urls and nurls > 0 then
return {1.0 / nurls}
end

return {0}
@@ -481,6 +484,13 @@ local function rspamd_gen_metatokens_table(task)
for _,mt in ipairs(metafunctions) do
local ct = mt.cb(task)
for i,tok in ipairs(ct) do
if tok ~= tok or tok == math.huge() then
local logger = require "rspamd_logger"
logger.errx(task, 'metatoken %s returned %s; replace it with 0 for sanity',
mt.names[i], tok)
tok = 0.0
end

metatokens[mt.names[i]] = tok
end
end

+ 1
- 1
src/lua/lua_task.c 파일 보기

@@ -4667,7 +4667,7 @@ lua_task_process_ann_tokens (lua_State *L)
sres = rspamd_task_find_symbol_result (task, sym);

if (sres && !(sres->flags & RSPAMD_SYMBOL_RESULT_IGNORED)) {
if (!isnan (sres->score) &&
if (!isnan (sres->score) && !isinf (sres->score) &&
!(rspamd_symcache_item_flags (sres->sym->cache_item) &
SYMBOL_TYPE_NOSTAT)) {


Loading…
취소
저장