aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2017-05-06 20:01:27 +0100
committerGitHub <noreply@github.com>2017-05-06 20:01:27 +0100
commit3aae8ca1deef000530953c4b57a565892e11fef3 (patch)
tree4a2a35b2d4605ec115cf64cf078b555ba9dd52b0
parent3f453a73fb89654a60d5e5d932c03d5a098a9335 (diff)
parent249f655925971b20b740206f94dce187626323ec (diff)
downloadrspamd-3aae8ca1deef000530953c4b57a565892e11fef3.tar.gz
rspamd-3aae8ca1deef000530953c4b57a565892e11fef3.zip
Merge pull request #1615 from croessner/avm
[Minor] Fix result parsing for SAVAPI
-rw-r--r--src/plugins/lua/antivirus.lua19
1 files changed, 7 insertions, 12 deletions
diff --git a/src/plugins/lua/antivirus.lua b/src/plugins/lua/antivirus.lua
index 63d2685ec..0b9bf0b22 100644
--- a/src/plugins/lua/antivirus.lua
+++ b/src/plugins/lua/antivirus.lua
@@ -73,10 +73,6 @@ local function match_patterns(default_sym, found, patterns)
return default_sym
end
-local function trim(s)
- return s:match "^%s*(.-)%s*$"
-end
-
local function yield_result(task, rule, vname)
local all_whitelisted = true
if type(vname) == 'string' then
@@ -625,15 +621,14 @@ local function savapi_check(task, rule)
-- Non-terminal response
elseif string.find(result, '310') then
- -- Recursive result
- local virus_obj = rspamd_str_split(result, ' object ')
local virus
- if virus_obj and virus_obj[2] then
- virus = rspamd_str_split(virus_obj[2], '<<<')
- virus = trim(virus[#virus])
- virus = rspamd_str_split(virus, ' ; ')[1]
- else
- virus = trim(rspamd_str_split(result, ' ; ')[1])
+ virus = result:match "310.*<<<%s(.*)%s+;.*;.*"
+ if not virus then
+ virus = result:match "310%s(.*)%s+;.*;.*"
+ if not virus then
+ rspamd_logger.errx(task, "%s: virus result unparseable: %s", rule['type'], result)
+ return
+ end
end
-- Store unique virus names
vnames[virus] = 1