You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by km...@apache.org on 2015/03/10 22:25:36 UTC

svn commit: r1665706 - /spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/URILocalBL.pm

Author: kmcgrail
Date: Tue Mar 10 21:25:36 2015
New Revision: 1665706

URL: http://svn.apache.org/r1665706
Log:
Bug 7153 for leak of URILocalBL.pm to stderr

Modified:
    spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/URILocalBL.pm

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/URILocalBL.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/URILocalBL.pm?rev=1665706&r1=1665705&r2=1665706&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/URILocalBL.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/URILocalBL.pm Tue Mar 10 21:25:36 2015
@@ -110,6 +110,13 @@ use strict;
 use warnings;
 use bytes;
 use re 'taint';
+use version;
+
+# need GeoIP C library 1.6.3 and GeoIP perl API 1.4.4 or later to avoid messages leaking - Bug 7153
+my $gic_wanted = version->parse('v1.4.4');
+my $gic_have = version->parse(Geo::IP->lib_version());
+my $gip_wanted = version->parse('v1.6.3');
+my $gip_have = version->parse($Geo::IP::VERSION);
 
 use vars qw(@ISA);
 @ISA = qw(Mail::SpamAssassin::Plugin);
@@ -132,10 +139,8 @@ sub new {
   # this code burps an ugly message if it fails, but that's redirected elsewhere
   my $flags = 0;
   eval '$flags = Geo::IP::GEOIP_SILENCE if (defined &Geo::IP::GEOIP_SILENCE)';
-  open(STDERR, ">&OLDERR");
-  close(OLDERR);
 
-  if ($flags) {
+  if ($flags && $gip_wanted >= $gip_have && $gic_wanted >= $gic_have) {
     $self->{geoip} = Geo::IP->new(GEOIP_MEMORY_CACHE | GEOIP_CHECK_CACHE | $flags);
     $self->{geoisp} = Geo::IP->open_type(GEOIP_ISP_EDITION, GEOIP_MEMORY_CACHE | GEOIP_CHECK_CACHE | $flags);
   } else {