You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by fe...@apache.org on 2004/10/11 15:08:13 UTC

svn commit: rev 54579 - spamassassin/branches/3.0/lib/Mail/SpamAssassin/Conf

Author: felicity
Date: Mon Oct 11 06:08:13 2004
New Revision: 54579

Modified:
   spamassassin/branches/3.0/lib/Mail/SpamAssassin/Conf/Parser.pm
Log:
bug 3865: specifying certain configuration parameters without a value didn't result in an error at parse time, but set an invalid value internally which could cause errors/etc.  do a simple check for numeric, boolean, and string values.

Modified: spamassassin/branches/3.0/lib/Mail/SpamAssassin/Conf/Parser.pm
==============================================================================
--- spamassassin/branches/3.0/lib/Mail/SpamAssassin/Conf/Parser.pm	(original)
+++ spamassassin/branches/3.0/lib/Mail/SpamAssassin/Conf/Parser.pm	Mon Oct 11 06:08:13 2004
@@ -564,16 +564,31 @@
 
 sub set_numeric_value {
   my ($conf, $key, $value, $line) = @_;
+
+  unless (defined $value && $value =~ /^-?\d+(?:\.\d+)?$/) {
+    return $Mail::SpamAssassin::Conf::INVALID_VALUE;
+  }
+
   $conf->{$key} = $value+0.0;
 }
 
 sub set_bool_value {
   my ($conf, $key, $value, $line) = @_;
+
+  unless (defined $value && ($value == 1 || $value == 0) ) {
+    return $Mail::SpamAssassin::Conf::INVALID_VALUE;
+  }
+
   $conf->{$key} = $value+0;
 }
 
 sub set_string_value {
   my ($conf, $key, $value, $line) = @_;
+
+  unless (defined $value) {
+    return $Mail::SpamAssassin::Conf::MISSING_REQUIRED_VALUE;
+  }
+
   $conf->{$key} = $value;
 }