You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by do...@apache.org on 2005/12/09 03:24:56 UTC
svn commit: r355320 - in /spamassassin/branches/3.1/lib/Mail/SpamAssassin:
Logger.pm Plugin/DCC.pm Plugin/DomainKeys.pm Plugin/Pyzor.pm
Plugin/Razor2.pm Plugin/SPF.pm
Author: dos
Date: Thu Dec 8 18:24:52 2005
New Revision: 355320
URL: http://svn.apache.org/viewcvs?rev=355320&view=rev
Log:
bug: 4631 fix __DIE__ hooks affecting exception handling by evals
Modified:
spamassassin/branches/3.1/lib/Mail/SpamAssassin/Logger.pm
spamassassin/branches/3.1/lib/Mail/SpamAssassin/Plugin/DCC.pm
spamassassin/branches/3.1/lib/Mail/SpamAssassin/Plugin/DomainKeys.pm
spamassassin/branches/3.1/lib/Mail/SpamAssassin/Plugin/Pyzor.pm
spamassassin/branches/3.1/lib/Mail/SpamAssassin/Plugin/Razor2.pm
spamassassin/branches/3.1/lib/Mail/SpamAssassin/Plugin/SPF.pm
Modified: spamassassin/branches/3.1/lib/Mail/SpamAssassin/Logger.pm
URL: http://svn.apache.org/viewcvs/spamassassin/branches/3.1/lib/Mail/SpamAssassin/Logger.pm?rev=355320&r1=355319&r2=355320&view=diff
==============================================================================
--- spamassassin/branches/3.1/lib/Mail/SpamAssassin/Logger.pm (original)
+++ spamassassin/branches/3.1/lib/Mail/SpamAssassin/Logger.pm Thu Dec 8 18:24:52 2005
@@ -140,8 +140,17 @@
# return unless $message[0] =~ /^\S+:/;
# }
- # dos: don't log alarm timeouts or broken pipes of various plugins' network checks
- return if ($level eq "error" && $message[0] =~ /__(?:alarm|brokenpipe)__ignore__/);
+ if ($level eq "error") {
+ # don't log alarm timeouts or broken pipes of various plugins' network checks
+ return if ($message[0] =~ /__(?:alarm|brokenpipe)__ignore__/);
+
+ # dos: we can safely ignore any die's that we eval'd in our own modules so
+ # don't log them -- this is caller 0, the use'ing package is 1, the eval is 2
+ my @caller = caller 2;
+ return if (defined $caller[3] && defined $caller[0] &&
+ $caller[3] =~ /^\(eval\)$/ &&
+ $caller[0] =~ m#^Mail::SpamAssassin(?:$|::)#);
+ }
my $message = join(" ", @message);
$message =~ s/[\r\n]+$//; # remove any trailing newlines
Modified: spamassassin/branches/3.1/lib/Mail/SpamAssassin/Plugin/DCC.pm
URL: http://svn.apache.org/viewcvs/spamassassin/branches/3.1/lib/Mail/SpamAssassin/Plugin/DCC.pm?rev=355320&r1=355319&r2=355320&view=diff
==============================================================================
--- spamassassin/branches/3.1/lib/Mail/SpamAssassin/Plugin/DCC.pm (original)
+++ spamassassin/branches/3.1/lib/Mail/SpamAssassin/Plugin/DCC.pm Thu Dec 8 18:24:52 2005
@@ -345,6 +345,7 @@
# safe to use $SIG{ALRM} here instead of Util::trap_sigalrm_fully(),
# since there are no killer regexp hang dangers here
local $SIG{ALRM} = sub { die "__alarm__ignore__\n" };
+ local $SIG{__DIE__}; # bug 4631
$oldalarm = alarm $timeout;
@@ -465,6 +466,7 @@
# since there are no killer regexp hang dangers here
local $SIG{ALRM} = sub { die "__alarm__ignore__\n" };
local $SIG{PIPE} = sub { die "__brokenpipe__ignore__\n" };
+ local $SIG{__DIE__}; # bug 4631
$oldalarm = alarm $timeout;
@@ -614,6 +616,7 @@
eval {
local $SIG{ALRM} = sub { die "__alarm__ignore__\n" };
local $SIG{PIPE} = sub { die "__brokenpipe__ignore__\n" };
+ local $SIG{__DIE__}; # bug 4631
$oldalarm = alarm $timeout;
Modified: spamassassin/branches/3.1/lib/Mail/SpamAssassin/Plugin/DomainKeys.pm
URL: http://svn.apache.org/viewcvs/spamassassin/branches/3.1/lib/Mail/SpamAssassin/Plugin/DomainKeys.pm?rev=355320&r1=355319&r2=355320&view=diff
==============================================================================
--- spamassassin/branches/3.1/lib/Mail/SpamAssassin/Plugin/DomainKeys.pm (original)
+++ spamassassin/branches/3.1/lib/Mail/SpamAssassin/Plugin/DomainKeys.pm Thu Dec 8 18:24:52 2005
@@ -141,6 +141,7 @@
eval {
local $SIG{ALRM} = sub { die "__alarm__ignore__\n" };
+ local $SIG{__DIE__}; # bug 4631
$oldalarm = alarm($timeout);
$self->_dk_lookup_trapped($scan, $message, $domain);
if (defined $oldalarm) {
Modified: spamassassin/branches/3.1/lib/Mail/SpamAssassin/Plugin/Pyzor.pm
URL: http://svn.apache.org/viewcvs/spamassassin/branches/3.1/lib/Mail/SpamAssassin/Plugin/Pyzor.pm?rev=355320&r1=355319&r2=355320&view=diff
==============================================================================
--- spamassassin/branches/3.1/lib/Mail/SpamAssassin/Plugin/Pyzor.pm (original)
+++ spamassassin/branches/3.1/lib/Mail/SpamAssassin/Plugin/Pyzor.pm Thu Dec 8 18:24:52 2005
@@ -230,6 +230,7 @@
# since there are no killer regexp hang dangers here
local $SIG{ALRM} = sub { die "__alarm__ignore__\n" };
local $SIG{PIPE} = sub { die "__brokenpipe__ignore__\n" };
+ local $SIG{__DIE__}; # bug 4631
$oldalarm = alarm $timeout;
@@ -360,6 +361,7 @@
eval {
local $SIG{ALRM} = sub { die "__alarm__ignore__\n" };
local $SIG{PIPE} = sub { die "__brokenpipe__ignore__\n" };
+ local $SIG{__DIE__}; # bug 4631
$oldalarm = alarm $timeout;
Modified: spamassassin/branches/3.1/lib/Mail/SpamAssassin/Plugin/Razor2.pm
URL: http://svn.apache.org/viewcvs/spamassassin/branches/3.1/lib/Mail/SpamAssassin/Plugin/Razor2.pm?rev=355320&r1=355319&r2=355320&view=diff
==============================================================================
--- spamassassin/branches/3.1/lib/Mail/SpamAssassin/Plugin/Razor2.pm (original)
+++ spamassassin/branches/3.1/lib/Mail/SpamAssassin/Plugin/Razor2.pm Thu Dec 8 18:24:52 2005
@@ -149,6 +149,7 @@
local ($^W) = 0; # argh, warnings in Razor
local $SIG{ALRM} = sub { die "__alarm__ignore__\n" };
+ local $SIG{__DIE__}; # bug 4631
$oldalarm = alarm $timeout;
# everything's in the module!
Modified: spamassassin/branches/3.1/lib/Mail/SpamAssassin/Plugin/SPF.pm
URL: http://svn.apache.org/viewcvs/spamassassin/branches/3.1/lib/Mail/SpamAssassin/Plugin/SPF.pm?rev=355320&r1=355319&r2=355320&view=diff
==============================================================================
--- spamassassin/branches/3.1/lib/Mail/SpamAssassin/Plugin/SPF.pm (original)
+++ spamassassin/branches/3.1/lib/Mail/SpamAssassin/Plugin/SPF.pm Thu Dec 8 18:24:52 2005
@@ -291,6 +291,7 @@
eval {
local $SIG{ALRM} = sub { die "__alarm__ignore__\n" };
+ local $SIG{__DIE__}; # bug 4631
$oldalarm = alarm($timeout);
($result, $comment) = $query->result();
if (defined $oldalarm) {