From: Vsevolod Stakhov Date: Sun, 11 Jun 2017 11:07:26 +0000 (+0100) Subject: [Fix] Fix another race condition in arc checks X-Git-Tag: 1.6.0~20 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=fdf0cf9941ced79fb57bc1f7cb334cca7204b37d;p=rspamd.git [Fix] Fix another race condition in arc checks --- diff --git a/src/plugins/lua/arc.lua b/src/plugins/lua/arc.lua index c61423176..2a6d101cd 100644 --- a/src/plugins/lua/arc.lua +++ b/src/plugins/lua/arc.lua @@ -261,6 +261,7 @@ local function arc_callback(task) end -- Now we can verify all signatures + local processed = 0 fun.each( function(sig) local ret,err = dkim_verify(task, sig.header, arc_signature_cb, 'arc-sign') @@ -268,16 +269,17 @@ local function arc_callback(task) if not ret then cbdata.res = 'fail' table.insert(cbdata.errors, string.format('sig:%s:%s', sig.d or '', err)) - cbdata.checked = cbdata.checked + 1 - rspamd_logger.debugm(N, task, 'checked arc sig %s: %s(%s), %s processed', + else + processed = processed + 1 + rspamd_logger.debugm(N, task, 'processed arc signature %s: %s(%s), %s processed', sig.d, ret, err, cbdata.checked) end end, cbdata.sigs) - if cbdata.checked ~= #arc_sig_headers then + if processed ~= #arc_sig_headers then task:insert_result(arc_symbols['reject'], 1.0, - rspamd_logger.slog('cannot verify %s of signatures: %s', - #arc_sig_headers - cbdata.checked, cbdata.errors)) + rspamd_logger.slog('cannot verify %s of %s signatures: %s', + #arc_sig_headers - processed, #arc_sig_headers, cbdata.errors)) end end