You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by he...@apache.org on 2019/08/01 12:28:39 UTC
svn commit: r1864149 - in /spamassassin:
branches/3.4/lib/Mail/SpamAssassin/Conf.pm
trunk/lib/Mail/SpamAssassin/Conf.pm
Author: hege
Date: Thu Aug 1 12:28:38 2019
New Revision: 1864149
URL: http://svn.apache.org/viewvc?rev=1864149&view=rev
Log:
Bug 5971 - M:SA:Conf::get_rule_value('rbl_evals') tries to coerce array to hash
Modified:
spamassassin/branches/3.4/lib/Mail/SpamAssassin/Conf.pm
spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm
Modified: spamassassin/branches/3.4/lib/Mail/SpamAssassin/Conf.pm
URL: http://svn.apache.org/viewvc/spamassassin/branches/3.4/lib/Mail/SpamAssassin/Conf.pm?rev=1864149&r1=1864148&r2=1864149&view=diff
==============================================================================
--- spamassassin/branches/3.4/lib/Mail/SpamAssassin/Conf.pm (original)
+++ spamassassin/branches/3.4/lib/Mail/SpamAssassin/Conf.pm Thu Aug 1 12:28:38 2019
@@ -4560,7 +4560,7 @@ sub get_rule_value {
# special case rbl_evals since they do not have a priority
if ($test_type eq 'rbl_evals') {
- return keys(%{$self->{$test_type}->{$rulename}});
+ return @{$self->{$test_type}->{$rulename}};
}
if (defined($priority)) {
@@ -4605,19 +4605,24 @@ sub delete_rule {
sub trim_rules {
my ($self, $regexp) = @_;
+ my ($rec, $err) = compile_regexp($regexp, 0);
+ if (!$rec) {
+ die "config: trim_rules: invalid regexp '$regexp': $err";
+ }
+
my @all_rules;
foreach my $rule_type ($self->get_rule_types()) {
push(@all_rules, $self->get_rule_keys($rule_type));
}
- my @rules_to_keep = grep(/$regexp/, @all_rules);
+ my @rules_to_keep = grep(/$rec/, @all_rules);
if (@rules_to_keep == 0) {
die "config: trim_rules: all rules excluded, nothing to test\n";
}
- my @meta_tests = grep(/$regexp/, $self->get_rule_keys('meta_tests'));
+ my @meta_tests = grep(/$rec/, $self->get_rule_keys('meta_tests'));
foreach my $meta (@meta_tests) {
push(@rules_to_keep, $self->add_meta_depends($meta))
}
Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm?rev=1864149&r1=1864148&r2=1864149&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm Thu Aug 1 12:28:38 2019
@@ -4806,7 +4806,7 @@ sub get_rule_value {
# special case rbl_evals since they do not have a priority
if ($test_type eq 'rbl_evals') {
- return keys(%{$self->{$test_type}->{$rulename}});
+ return @{$self->{$test_type}->{$rulename}};
}
if (defined($priority)) {
@@ -4851,19 +4851,24 @@ sub delete_rule {
sub trim_rules {
my ($self, $regexp) = @_;
+ my ($rec, $err) = compile_regexp($regexp, 0);
+ if (!$rec) {
+ die "config: trim_rules: invalid regexp '$regexp': $err";
+ }
+
my @all_rules;
foreach my $rule_type ($self->get_rule_types()) {
push(@all_rules, $self->get_rule_keys($rule_type));
}
- my @rules_to_keep = grep(/$regexp/, @all_rules);
+ my @rules_to_keep = grep(/$rec/, @all_rules);
if (@rules_to_keep == 0) {
die "config: trim_rules: all rules excluded, nothing to test\n";
}
- my @meta_tests = grep(/$regexp/, $self->get_rule_keys('meta_tests'));
+ my @meta_tests = grep(/$rec/, $self->get_rule_keys('meta_tests'));
foreach my $meta (@meta_tests) {
push(@rules_to_keep, $self->add_meta_depends($meta))
}