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;
}