You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by mm...@apache.org on 2007/09/15 22:16:08 UTC

svn commit: r575968 - in /spamassassin/trunk/lib/Mail/SpamAssassin: Conf.pm Conf/Parser.pm Constants.pm HTML.pm Logger.pm Util.pm Util/MemoryDump.pm

Author: mmartinec
Date: Sat Sep 15 13:16:07 2007
New Revision: 575968

URL: http://svn.apache.org/viewvc?rev=575968&view=rev
Log:
Exporter never really worked in SA, was not enclosed in BEGIN{}; revert quick-fixes r575915 and r575772, they were not solving the right problem

Modified:
    spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Conf/Parser.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Constants.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/HTML.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Logger.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Util.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Util/MemoryDump.pm

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm?rev=575968&r1=575967&r2=575968&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm Sat Sep 15 13:16:07 2007
@@ -88,6 +88,7 @@
 use Mail::SpamAssassin::Conf::Parser;
 use Mail::SpamAssassin::Logger;
 use Mail::SpamAssassin::Util::TieOneStringHash;
+use Mail::SpamAssassin::Util qw(untaint_var);
 use File::Spec;
 
 use vars qw{
@@ -2839,7 +2840,7 @@
 	return $INVALID_VALUE;
       }
       # is blindly untainting safe?  it is no worse than before
-      $_ = Mail::SpamAssassin::Util::untaint_var($_)  for ($package,$path);
+      $_ = untaint_var($_)  for ($package,$path);
       $self->load_plugin ($package, $path);
     }
   });
@@ -2869,7 +2870,7 @@
 	return $INVALID_VALUE;
       }
       # is blindly untainting safe?  it is no worse than before
-      $_ = Mail::SpamAssassin::Util::untaint_var($_)  for ($package,$path);
+      $_ = untaint_var($_)  for ($package,$path);
       $self->load_plugin ($package, $path, 1);
     }
   });
@@ -3506,8 +3507,7 @@
   }
   # it wouldn't hurt to do some checking on validity of $package
   # and $path before untainting them
-  $self->{main}->{plugins}->load_plugin(
-    Mail::SpamAssassin::Util::untaint_var($package), $path, $silent);
+  $self->{main}->{plugins}->load_plugin(untaint_var($package), $path, $silent);
 }
 
 sub load_plugin_succeeded {

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Conf/Parser.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Conf/Parser.pm?rev=575968&r1=575967&r2=575968&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Conf/Parser.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Conf/Parser.pm Sat Sep 15 13:16:07 2007
@@ -124,6 +124,7 @@
 use Mail::SpamAssassin::Conf;
 use Mail::SpamAssassin::Constants qw(:sa);
 use Mail::SpamAssassin::Logger;
+use Mail::SpamAssassin::Util qw(untaint_var);
 
 use strict;
 use warnings;
@@ -270,7 +271,7 @@
     $value = '' unless defined($value);
 
 #   # Do a better job untainting this info ...
-#   # $value = Mail::SpamAssassin::Util::untaint_var($value);
+#   # $value = untaint_var($value);
 #   Do NOT blindly untaint now, do it carefully later when semantics is known!
 
     my $parse_error;       # undef by default, may be overridden
@@ -484,7 +485,7 @@
   my $bad = 0;
   foreach my $token (@tokens) {
     if ($token =~ /^\W+|[+-]?\d+(?:\.\d+)?$/) {
-      $eval .= Mail::SpamAssassin::Util::untaint_var($token) . " ";
+      $eval .= untaint_var($token) . " ";
     }
     elsif ($token eq 'plugin') {
       # replace with method call
@@ -494,7 +495,7 @@
       $eval .= $Mail::SpamAssassin::VERSION." ";
     }
     elsif ($token =~ /^\w[\w\:]+$/) { # class name
-      $eval .= '"' . Mail::SpamAssassin::Util::untaint_var($token) . '" ';
+      $eval .= '"' . untaint_var($token) . '" ';
     }
     else {
       $bad++;
@@ -613,7 +614,7 @@
     return $Mail::SpamAssassin::Conf::INVALID_VALUE;
   }
   # it is safe to untaint now that we now the syntax is a valid number
-  $conf->{$key} = Mail::SpamAssassin::Util::untaint_var($value) + 0.0;
+  $conf->{$key} = untaint_var($value) + 0.0;
 }
 
 sub set_bool_value {
@@ -832,7 +833,7 @@
     next unless exists $conf->{tests}->{$token};
 
     # add and recurse
-    push(@{$deps}, Mail::SpamAssassin::Util::untaint_var($token));
+    push(@{$deps}, untaint_var($token));
     $self->_meta_deps_recurse($conf, $toprule, $token, $deps, $alreadydone);
   }
 }
@@ -1091,7 +1092,7 @@
   my ($self, $name, $rule) = @_;
 
   my $meta = '';
-  $rule = Mail::SpamAssassin::Util::untaint_var($rule); # must be careful below
+  $rule = untaint_var($rule);  # must be careful below
 
   # Lex the rule into tokens using a rather simple RE method ...
   my $lexer = ARITH_EXPRESSION_LEXER;

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Constants.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Constants.pm?rev=575968&r1=575967&r2=575968&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Constants.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Constants.pm Sat Sep 15 13:16:07 2007
@@ -25,34 +25,38 @@
 use warnings;
 use re 'taint';
 
-use vars qw (
-	@BAYES_VARS @IP_VARS @SA_VARS %EXPORT_TAGS @EXPORT_OK
-);
+BEGIN {
+  use Exporter ();
+  use vars qw(@ISA);
+  @ISA = qw(Exporter);
 
-use base qw( Exporter );
+  use vars qw (
+	@BAYES_VARS @IP_VARS @SA_VARS %EXPORT_TAGS @EXPORT_OK
+  );
 
-@IP_VARS = qw(
+  @IP_VARS = qw(
 	IP_IN_RESERVED_RANGE IP_PRIVATE LOCALHOST IPV4_ADDRESS IP_ADDRESS
-);
-@BAYES_VARS = qw(
+  );
+  @BAYES_VARS = qw(
 	DUMP_MAGIC DUMP_TOKEN DUMP_BACKUP 
-);
-# These are generic constants that may be used across several modules
-@SA_VARS = qw(
+  );
+  # These are generic constants that may be used across several modules
+  @SA_VARS = qw(
 	HARVEST_DNSBL_PRIORITY MBX_SEPARATOR
 	MAX_BODY_LINE_LENGTH MAX_HEADER_KEY_LENGTH MAX_HEADER_VALUE_LENGTH
 	MAX_HEADER_LENGTH ARITH_EXPRESSION_LEXER AI_TIME_UNKNOWN
 	CHARSETS_LIKELY_TO_FP_AS_CAPS MAX_URI_LENGTH
-);
+  );
 
-%EXPORT_TAGS = (
+  %EXPORT_TAGS = (
 	bayes => [ @BAYES_VARS ],
         ip => [ @IP_VARS ],
         sa => [ @SA_VARS ],
         all => [ @BAYES_VARS, @IP_VARS, @SA_VARS ],
-);
+  );
 
-@EXPORT_OK = ( @BAYES_VARS, @IP_VARS, @SA_VARS );
+  @EXPORT_OK = ( @BAYES_VARS, @IP_VARS, @SA_VARS );
+}
 
 # BAYES_VARS
 use constant DUMP_MAGIC  => 1;

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/HTML.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/HTML.pm?rev=575968&r1=575967&r2=575968&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/HTML.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/HTML.pm Sat Sep 15 13:16:07 2007
@@ -29,12 +29,14 @@
 use Mail::SpamAssassin::Constants qw(:sa);
 use Mail::SpamAssassin::Util qw(untaint_var);
 
-use vars qw($re_loose $re_strict $re_other @ISA @EXPORT @EXPORT_OK);
-
-require Exporter;
-@ISA = qw(HTML::Parser Exporter);
-@EXPORT = qw(get_results name_to_rgb);
-@EXPORT_OK = qw();
+BEGIN {
+  use Exporter ();
+  use vars qw(@ISA @EXPORT @EXPORT_OK);
+  @ISA = qw(HTML::Parser Exporter);
+  @EXPORT = qw(get_results name_to_rgb);
+  @EXPORT_OK = qw();
+  use vars qw($re_loose $re_strict $re_other);
+}
 
 # elements defined by the HTML 4.01 and XHTML 1.0 DTDs (do not change them!)
 # does not include XML

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Logger.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Logger.pm?rev=575968&r1=575967&r2=575968&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Logger.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Logger.pm Sat Sep 15 13:16:07 2007
@@ -35,18 +35,18 @@
 
 package Mail::SpamAssassin::Logger;
 
-use vars qw(@ISA @EXPORT @EXPORT_OK);
-
-require Exporter;
-
 use strict;
 use warnings;
 use bytes;
 use re 'taint';
 
-@ISA = qw(Exporter);
-@EXPORT = qw(dbg info would_log);
-@EXPORT_OK = qw(log_message);
+BEGIN {
+  use Exporter ();
+  use vars qw(@ISA @EXPORT @EXPORT_OK);
+  @ISA = qw(Exporter);
+  @EXPORT = qw(dbg info would_log);
+  @EXPORT_OK = qw(log_message);
+}
 
 use constant ERROR => 0;
 use constant WARNING => 1;

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Util.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Util.pm?rev=575968&r1=575967&r2=575968&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Util.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Util.pm Sat Sep 15 13:16:07 2007
@@ -47,16 +47,18 @@
 
 use Mail::SpamAssassin::Logger;
 
-use vars qw (
-  @ISA @EXPORT @EXPORT_OK
-  $AM_TAINTED
-);
+BEGIN {
+  use Exporter ();
 
-require Exporter;
+  use vars qw (
+    @ISA @EXPORT @EXPORT_OK
+    $AM_TAINTED
+  );
 
-@ISA = qw(Exporter);
-@EXPORT = ();
-@EXPORT_OK = qw(&local_tz &base64_decode &untaint_var);
+  @ISA = qw(Exporter);
+  @EXPORT = ();
+  @EXPORT_OK = qw(&local_tz &base64_decode &untaint_var);
+}
 
 use Mail::SpamAssassin;
 use Mail::SpamAssassin::Util::RegistrarBoundaries;

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Util/MemoryDump.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Util/MemoryDump.pm?rev=575968&r1=575967&r2=575968&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Util/MemoryDump.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Util/MemoryDump.pm Sat Sep 15 13:16:07 2007
@@ -37,11 +37,12 @@
 use warnings;
 use bytes;
 use re 'taint';
-require Exporter;
-
-our @ISA = qw(Exporter);
-our @EXPORT_OK = qw(MEMDEBUG MEMDEBUG_dump_obj);
 
+BEGIN {
+  use Exporter ();
+  our @ISA = qw(Exporter);
+  our @EXPORT_OK = qw(MEMDEBUG MEMDEBUG_dump_obj);
+}
 our $COUNTER = 0;
 
 use Devel::Peek qw();