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 2008/12/31 17:46:53 UTC

svn commit: r730413 - in /spamassassin/trunk: MANIFEST t/SATest.pm t/config_tree_recurse.t

Author: jm
Date: Wed Dec 31 08:46:52 2008
New Revision: 730413

URL: http://svn.apache.org/viewvc?rev=730413&view=rev
Log:
bug 6019: add test to ensure that config_tree_recurse works in taint mode

Added:
    spamassassin/trunk/t/config_tree_recurse.t   (with props)
Modified:
    spamassassin/trunk/MANIFEST
    spamassassin/trunk/t/SATest.pm

Modified: spamassassin/trunk/MANIFEST
URL: http://svn.apache.org/viewvc/spamassassin/trunk/MANIFEST?rev=730413&r1=730412&r2=730413&view=diff
==============================================================================
--- spamassassin/trunk/MANIFEST (original)
+++ spamassassin/trunk/MANIFEST Wed Dec 31 08:46:52 2008
@@ -515,3 +515,4 @@
 t/get_all_headers.t
 t/data/Dumpheaders.pm
 t/spamd_user_rules_leak.t
+t/config_tree_recurse.t

Modified: spamassassin/trunk/t/SATest.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/t/SATest.pm?rev=730413&r1=730412&r2=730413&view=diff
==============================================================================
--- spamassassin/trunk/t/SATest.pm (original)
+++ spamassassin/trunk/t/SATest.pm Wed Dec 31 08:46:52 2008
@@ -139,7 +139,9 @@
   rmtree ("log/test_rules_copy");
   mkdir ("log/test_rules_copy", 0755);
 
-  for $file (<../rules/*.cf>, <../rules/*.pm>, <../rules/*.pre>) {
+  for $tainted (<../rules/*.cf>, <../rules/*.pm>, <../rules/*.pre>) {
+    $tainted =~ /(.*)/;
+    my $file = $1;
     $base = basename $file;
     copy ($file, "log/test_rules_copy/$base")
       or warn "cannot copy $file to log/test_rules_copy/$base";
@@ -151,7 +153,9 @@
   rmtree ("log/localrules.tmp");
   mkdir ("log/localrules.tmp", 0755);
 
-  for $file (<../rules/*.pre>) {
+  for $tainted (<../rules/*.pre>) {
+    $tainted =~ /(.*)/;
+    my $file = $1;
     $base = basename $file;
     copy ($file, "log/localrules.tmp/$base")
       or warn "cannot copy $file to log/localrules.tmp/$base";

Added: spamassassin/trunk/t/config_tree_recurse.t
URL: http://svn.apache.org/viewvc/spamassassin/trunk/t/config_tree_recurse.t?rev=730413&view=auto
==============================================================================
--- spamassassin/trunk/t/config_tree_recurse.t (added)
+++ spamassassin/trunk/t/config_tree_recurse.t Wed Dec 31 08:46:52 2008
@@ -0,0 +1,49 @@
+#!/usr/bin/perl -T
+#
+# Test that config_tree_recurse works ok in taint mode; bug 6019
+
+$ENV{PATH}='/bin:/usr/bin:/usr/local/bin';
+
+BEGIN {
+  if (-e 't/test_dir') { # if we are running "t/rule_tests.t", kluge around ...
+    chdir 't';
+  }
+
+  if (-e 'test_dir') {            # running from test directory, not ..
+    unshift(@INC, '../blib/lib');
+    unshift(@INC, '../lib');
+  }
+}
+
+my $prefix = '.';
+if (-e 'test_dir') {            # running from test directory, not ..
+  $prefix = '..';
+}
+
+use lib '.'; use lib 't';
+use SATest; sa_t_init("basic_obj_api");
+use Test; BEGIN { plan tests => 4 };
+
+# ---------------------------------------------------------------------------
+
+use strict;
+require Mail::SpamAssassin;
+
+my $sa = create_saobj({'dont_copy_prefs' => 1, 'config_tree_recurse' => 1});
+$sa->init(0); # parse rules
+ok($sa);
+
+open (IN, "<data/spam/009");
+my $mail = $sa->parse(\*IN);
+close IN;
+
+my $status = $sa->check($mail);
+my $rewritten = $status->rewrite_mail();
+my $msg = $status->{msg};
+
+ok $rewritten =~ /message\/rfc822; x-spam-type=original/;
+ok $rewritten =~ /X-Spam-Flag: YES/;
+
+$mail->finish();
+$status->finish();
+ok 1;

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