From: Vsevolod Stakhov Date: Mon, 20 Jun 2022 19:46:27 +0000 (+0100) Subject: [Minor] Add some sanity checks to the redis scripts X-Git-Tag: 3.3~180 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=3a8bb197fb08ef3832e45f7ee270cc66bc6ea224;p=thirdparty%2Frspamd.git [Minor] Add some sanity checks to the redis scripts --- diff --git a/lualib/plugins/neural.lua b/lualib/plugins/neural.lua index d2db2f519e..67051fa1ae 100644 --- a/lualib/plugins/neural.lua +++ b/lualib/plugins/neural.lua @@ -127,12 +127,16 @@ local redis_lua_script_maybe_invalidate = [[ local lim = tonumber(KEYS[2]) if card > lim then local to_delete = redis.call('ZRANGE', KEYS[1], 0, card - lim - 1) - for _,k in ipairs(to_delete) do - local tb = cjson.decode(k) - redis.call('DEL', tb.redis_key) - -- Also train vectors - redis.call('DEL', tb.redis_key .. '_spam') - redis.call('DEL', tb.redis_key .. '_ham') + if to_delete then + for _,k in ipairs(to_delete) do + local tb = cjson.decode(k) + if type(tb) == 'table' and type(tb.redis_key) == 'string' then + redis.call('DEL', tb.redis_key) + -- Also train vectors + redis.call('DEL', tb.redis_key .. '_spam') + redis.call('DEL', tb.redis_key .. '_ham') + end + end end redis.call('ZREMRANGEBYRANK', KEYS[1], 0, card - lim - 1) return to_delete