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/11/12 01:28:51 UTC
svn commit: r332683 - /spamassassin/trunk/lib/Mail/SpamAssassin/Logger.pm
Author: dos
Date: Fri Nov 11 16:28:49 2005
New Revision: 332683
URL: http://svn.apache.org/viewcvs?rev=332683&view=rev
Log:
bug 4631: catch eval'd die's leaked by broken perl __DIE__ hooks
Modified:
spamassassin/trunk/lib/Mail/SpamAssassin/Logger.pm
Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Logger.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/Logger.pm?rev=332683&r1=332682&r2=332683&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Logger.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Logger.pm Fri Nov 11 16:28:49 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