You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by jm...@apache.org on 2009/09/16 00:06:00 UTC

svn commit: r815516 - in /spamassassin/trunk: lib/Mail/SpamAssassin/Conf.pm t/spamd_user_rules_leak.t t/spamd_whitelist_leak.t

Author: jm
Date: Tue Sep 15 22:05:59 2009
New Revision: 815516

URL: http://svn.apache.org/viewvc?rev=815516&view=rev
Log:
bug 6003: fix leakage of 'whitelist_from_rcvd' entries between spamd users

Added:
    spamassassin/trunk/t/spamd_whitelist_leak.t   (with props)
Modified:
    spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm
    spamassassin/trunk/t/spamd_user_rules_leak.t

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm?rev=815516&r1=815515&r2=815516&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm Tue Sep 15 22:05:59 2009
@@ -3329,9 +3329,12 @@
   $self->{bayes_ignore_to} = { };
 
   $self->{whitelist_auth} = { };
+  $self->{def_whitelist_auth} = { };
   $self->{whitelist_from} = { };
   $self->{whitelist_allows_relays} = { };
   $self->{blacklist_from} = { };
+  $self->{whitelist_from_rcvd} = { };
+  $self->{def_whitelist_from_rcvd} = { };
 
   $self->{blacklist_to} = { };
   $self->{whitelist_to} = { };

Modified: spamassassin/trunk/t/spamd_user_rules_leak.t
URL: http://svn.apache.org/viewvc/spamassassin/trunk/t/spamd_user_rules_leak.t?rev=815516&r1=815515&r2=815516&view=diff
==============================================================================
--- spamassassin/trunk/t/spamd_user_rules_leak.t (original)
+++ spamassassin/trunk/t/spamd_user_rules_leak.t Tue Sep 15 22:05:59 2009
@@ -12,7 +12,7 @@
 exit if $SKIP_SPAMD_TESTS;
 
 # ---------------------------------------------------------------------------
-# If user A define's a user rule (when allow_user_rules is enabled) it affects
+# If user A defines a user rule (when allow_user_rules is enabled) it affects
 # user B if they also set a score for that same rule name or create a user rule
 # with the same name.
 

Added: spamassassin/trunk/t/spamd_whitelist_leak.t
URL: http://svn.apache.org/viewvc/spamassassin/trunk/t/spamd_whitelist_leak.t?rev=815516&view=auto
==============================================================================
--- spamassassin/trunk/t/spamd_whitelist_leak.t (added)
+++ spamassassin/trunk/t/spamd_whitelist_leak.t Tue Sep 15 22:05:59 2009
@@ -0,0 +1,63 @@
+#!/usr/bin/perl
+# bug 4179
+
+use lib '.'; use lib 't';
+use SATest; sa_t_init("spamd_whitelist_leak");
+use Test;
+BEGIN { 
+
+  plan tests => ($SKIP_SPAMD_TESTS ? 0 : 8)
+
+};
+exit if $SKIP_SPAMD_TESTS;
+
+# ---------------------------------------------------------------------------
+# bug 6003
+
+tstlocalrules (q{
+
+        body MYBODY /LOSE WEIGHT/
+        score MYBODY 99
+
+  });
+
+rmtree ("log/virtualconfig/testuser1", 0, 1);
+mkpath ("log/virtualconfig/testuser1", 0, 0755);
+rmtree ("log/virtualconfig/testuser2", 0, 1);
+mkpath ("log/virtualconfig/testuser2", 0, 0755);
+open (OUT, ">log/virtualconfig/testuser1/user_prefs");
+print OUT q{
+
+        whitelist_from      sb55sb123456789@yahoo.com
+        whitelist_from_rcvd sb55sb123456789@yahoo.com  cgocable.ca
+        whitelist_from_rcvd sb55sb123456789@yahoo.com  webnote.net
+
+};
+close OUT;
+open (OUT, ">log/virtualconfig/testuser2/user_prefs");
+print OUT '';
+close OUT;
+
+%patterns = (
+  q{ 99 MYBODY }, 'MYBODY',
+  q{-100 USER_IN_WHITELIST }, 'USER_IN_WHITELIST',
+);
+%anti_patterns = (
+);
+
+# use -m1 so all scans use the same child
+ok (start_spamd ("--virtual-config-dir=log/virtualconfig/%u -L -u $spamd_run_as_user -m1"));
+ok (spamcrun ("-u testuser1 < data/spam/001", \&patterns_run_cb));
+ok_all_patterns();
+clear_pattern_counters();
+
+%patterns = (
+  q{ 99 MYBODY }, 'MYBODY',
+);
+%anti_patterns = (
+  q{-100 USER_IN_WHITELIST }, 'USER_IN_WHITELIST',
+);
+ok (spamcrun ("-u testuser2 < data/spam/001", \&patterns_run_cb));
+checkfile ($spamd_stderr, \&patterns_run_cb);
+ok_all_patterns();
+ok stop_spamd();

Propchange: spamassassin/trunk/t/spamd_whitelist_leak.t
------------------------------------------------------------------------------
    svn:executable = *