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/07/07 11:05:20 UTC
svn commit: r1862687 -
/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/AskDNS.pm
Author: hege
Date: Sun Jul 7 11:05:20 2019
New Revision: 1862687
URL: http://svn.apache.org/viewvc?rev=1862687&view=rev
Log:
Use compile_regexp
Modified:
spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/AskDNS.pm
Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/AskDNS.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/AskDNS.pm?rev=1862687&r1=1862686&r2=1862687&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/AskDNS.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/AskDNS.pm Sun Jul 7 11:05:20 2019
@@ -189,7 +189,7 @@ use warnings;
use re 'taint';
use Mail::SpamAssassin::Plugin;
-use Mail::SpamAssassin::Util qw(decode_dns_question_entry idn_to_ascii);
+use Mail::SpamAssassin::Util qw(decode_dns_question_entry idn_to_ascii compile_regexp);
use Mail::SpamAssassin::Logger;
use version 0.77;
@@ -253,20 +253,14 @@ sub parse_and_canonicalize_subtest {
my $result;
local($1,$2,$3);
- # modifiers /a, /d, /l, /u in suffix form were added with perl 5.13.10 (5.14)
- # currently known modifiers are [msixoadlu], but let's not be too picky here
- if ( $subtest =~ m{^ / (.+) / ([a-z]*) \z}xs) {
- $result = $2 ne '' ? qr{(?$2)$1} : qr{$1};
- } elsif ($subtest =~ m{^ m \s* \( (.+) \) ([a-z]*) \z}xs) {
- $result = $2 ne '' ? qr{(?$2)$1} : qr{$1};
- } elsif ($subtest =~ m{^ m \s* \[ (.+) \] ([a-z]*) \z}xs) {
- $result = $2 ne '' ? qr{(?$2)$1} : qr{$1};
- } elsif ($subtest =~ m{^ m \s* \{ (.+) \} ([a-z]*) \z}xs) {
- $result = $2 ne '' ? qr{(?$2)$1} : qr{$1};
- } elsif ($subtest =~ m{^ m \s* < (.+) > ([a-z]*) \z}xs) {
- $result = $2 ne '' ? qr{(?$2)$1} : qr{$1};
- } elsif ($subtest =~ m{^ m \s* (\S) (.+) \1 ([a-z]*) \z}xs) {
- $result = $2 ne '' ? qr{(?$2)$1} : qr{$1};
+ if ($subtest =~ m{^/ .+ / [a-z]* \z}xs ||
+ $subtest =~ m{^m (\W) .+ (\W) [a-z]* \z}xs) {
+ my ($rec, $err) = compile_regexp($subtest, 1);
+ if (!$rec) {
+ warn "askdns: subtest compile failed: '$subtest': $err\n";
+ } else {
+ $result = $rec;
+ }
} elsif ($subtest =~ m{^ (["']) (.*) \1 \z}xs) { # quoted string
$result = $2;
} elsif ($subtest =~ m{^ \[ ( (?:[A-Z]+|\d+)