?revision_form?Rev ?revision_input??revision_submit??revision_endform?
Rev 70 |
Blame |
Compare with Previous |
Last modification |
View Log
| RSS feed
Description: Bail out if a non-IPv4 address is encountered
Author: Magnus Holmgren <holmgren@debian.org>
Bug-Debian: http://bugs.debian.org/300103
Bug-Debian: http://bugs.debian.org/479955
--- sa-exim-4.2.1.orig/Greylisting.pm
+++ sa-exim-4.2.1/Greylisting.pm
@@ -170,16 +172,19 @@ sub greylisting
# connectip is supposed to be untainted now, but I was still getting
# some insecure dependecy error messages sometimes (perl 5.8 problem apparently)
- $connectip =~ /(\d+)\.(\d+)\.(\d+)\.(\d+)/;
- my ($ipbyte1, $ipbyte2, $ipbyte3, $ipbyte4) = ($1, $2, $3, $4);
- my $ipdir1 = "$option{'dir'}/$ipbyte1";
- my $ipdir2 = "$ipdir1/$ipbyte2";
- my $ipdir3 = "$ipdir2/$ipbyte3";
+ unless ($connectip =~ /(\d+)\.(\d+)\.(\d+)\.(\d+)/) {
+ warn "Can only handle IPv4 addresses; skipping greylisting call for message $mesgid\n";
+ return 0;
+ }
+
+ my $ipdir1 = "$option{'dir'}/$1";
+ my $ipdir2 = "$ipdir1/$2";
+ my $ipdir3 = "$ipdir2/$3";
my $ipdir4;
my $tupletdir;
$ipdir4 = "$ipdir3";
- $ipdir4 .= "/$ipbyte4" if ($option{'greylistfourthbyte'});
+ $ipdir4 .= "/$4" if ($option{'greylistfourthbyte'});
$tupletdir = "$ipdir4/$envfrom";
$tuplet = "$tupletdir/$rcptto";