When RBL checks are on, and an X-Originating-IP header is found, it does
an IP check using my_inet_aton. However, there seems to be a problem
with certain types of headers. I've seen this style of header (I think
coming from a Mailman list)
X-Originating-IP: 192.168.0.25/instID=29
The part in the code is in EvalTests.pm (around line 1240, for 3.10)
for my $header ('X-Originating-IP', 'X-Apparently-From') {
my $str = $self->get($header);
my $str = pop(@headers);
next unless $str;
push (@originating, ($str =~ m/($IP_ADDRESS)/g));
}
@originating gets this:
$VAR1 = '192.168.0.25';
$VAR2 = '';
$VAR3 = '';
$VAR4 = '';
$VAR5 = '';
$VAR6 = '';
$VAR7 = '';
$VAR8 = 'D';
$VAR9 = '';
$VAR10 = '29';
$VAR11 = '';
When $trusted->contains_ip gets called, the "D" causes a warning:
Oct 19 16:24:21 mailhost mimedefang-multiplexor[6036]: Slave 5 stderr:
Argument "D" isn't numeric in pack at
/usr/lib/perl5/site_perl/5.8.0/Mail/SpamAssassin/Util.pm line 711.
We're using perl 5.8.0 on this system - any ideas on why this is
happening? Shouldn't IP_ADDRESS disregard the "D", or in fact anything
past the '/'?
--
Adrian Daminato
Systems Administrator