commit e8a54f7: [Fix] Meta: Filter some more values
Vsevolod Stakhov
vsevolod at highsecure.ru
Fri Oct 18 17:42:06 UTC 2019
Author: Vsevolod Stakhov
Date: 2019-10-18 18:36:29 +0100
URL: https://github.com/rspamd/rspamd/commit/e8a54f7987f0b753e6a4d6bacc76d9766b2a8303 (HEAD -> master)
[Fix] Meta: Filter some more values
---
lualib/lua_meta.lua | 17 +++++++++++++----
1 file changed, 13 insertions(+), 4 deletions(-)
diff --git a/lualib/lua_meta.lua b/lualib/lua_meta.lua
index 3ed416158..b7c9286d7 100644
--- a/lualib/lua_meta.lua
+++ b/lualib/lua_meta.lua
@@ -18,6 +18,7 @@ local exports = {}
local N = "metatokens"
local ts = require("tableshape").types
+local logger = require "rspamd_logger"
-- Metafunctions
local function meta_size_function(task)
@@ -454,6 +455,11 @@ local function rspamd_gen_metatokens(task, names)
for i,tok in ipairs(ct) do
lua_util.debugm(N, task, "metatoken: %s = %s",
mt.names[i], tok)
+ if tok ~= tok or tok == math.huge() then
+ logger.errx(task, 'metatoken %s returned %s; replace it with 0 for sanity',
+ mt.names[i], tok)
+ tok = 0.0
+ end
table.insert(metatokens, tok)
end
end
@@ -462,10 +468,15 @@ local function rspamd_gen_metatokens(task, names)
end
else
- local logger = require "rspamd_logger"
for _,n in ipairs(names) do
if metatokens_by_name[n] then
- table.insert(metatokens, metatokens_by_name[n](task))
+ local tok = metatokens_by_name[n](task)
+ if tok ~= tok or tok == math.huge() then
+ logger.errx(task, 'metatoken %s returned %s; replace it with 0 for sanity',
+ n, tok)
+ tok = 0.0
+ end
+ table.insert(metatokens, tok)
else
logger.errx(task, 'unknown metatoken: %s', n)
end
@@ -485,7 +496,6 @@ local function rspamd_gen_metatokens_table(task)
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
@@ -519,7 +529,6 @@ exports.add_metafunction = function(tbl)
local ret, err = meta_schema(tbl)
if not ret then
- local logger = require "rspamd_logger"
logger.errx('cannot add metafunction: %s', err)
else
table.insert(metafunctions, tbl)
More information about the Commits
mailing list