0,0 → 1,33 |
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"; |