]> source.dussan.org Git - rspamd.git/commitdiff
Fix negation for header rules in SA plugin
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 17 Feb 2016 23:42:46 +0000 (23:42 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 17 Feb 2016 23:42:46 +0000 (23:42 +0000)
src/plugins/lua/spamassassin.lua

index 4f41681e6e16e1786b7267ebffcc073a9e99fe74..988abf01190ece497d91a777cb3bb0b7eade2527 100644 (file)
@@ -981,6 +981,7 @@ local function post_process()
   -- Header rules
   _.each(function(k, r)
     local f = function(task)
+
       local raw = false
       local check = {}
       -- Cached path for ordinary expressions
@@ -1006,9 +1007,14 @@ local function post_process()
           raw = h['raw'],
         })
 
-        if h['not'] then
-          return not ret
+        if r['not'] then
+          if ret ~= 0 then
+            ret = 0
+          else
+            ret = 1
+          end
         end
+
         return ret
       end
 
@@ -1070,14 +1076,16 @@ local function post_process()
         return 0
       end
 
+      local ret = 0
       for i, c in ipairs(check) do
         local match = sa_regexp_match(c, r['re'], raw, r)
         if (match and not r['not']) or (not match and r['not']) then
-          return match
+          ret = 1
         end
+
       end
 
-      return 0
+      return ret
     end
     if r['score'] then
       local real_score = r['score'] * calculate_score(k, r)