commit 3a8bb19: [Minor] Add some sanity checks to the redis scripts

Vsevolod Stakhov vsevolod at rspamd.com
Mon Jun 20 19:49:03 UTC 2022


Author: Vsevolod Stakhov
Date: 2022-06-20 20:46:27 +0100
URL: https://github.com/rspamd/rspamd/commit/3a8bb197fb08ef3832e45f7ee270cc66bc6ea224 (HEAD -> master)

[Minor] Add some sanity checks to the redis scripts

---
 lualib/plugins/neural.lua | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/lualib/plugins/neural.lua b/lualib/plugins/neural.lua
index d2db2f519..67051fa1a 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


More information about the Commits mailing list