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/05 00:13:28 UTC

svn commit: rev 53754 - spamassassin/trunk/lib/Mail/SpamAssassin/Conf

Author: felicity
Date: Mon Oct  4 15:13:27 2004
New Revision: 53754

Modified:
   spamassassin/trunk/lib/Mail/SpamAssassin/Conf/Parser.pm
Log:
add in some simple validation of values before assigning configuration variables.  avoids issues like 'argument '' not a numeric value in (+)' when there's a missing value passed in.

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Conf/Parser.pm
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Conf/Parser.pm	(original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Conf/Parser.pm	Mon Oct  4 15:13:27 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;
 }