Problem with check_invalid_ip()

2009-05-29 Thread Eric Rodriguez
Hi,

I'm having trouble with the check invalid_ip subroutine in the RelayEval.pm.
See
http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/RelayEval.pm?view=logr1=451385pathrev=451385

After a couple test, it seems that 193.X.X.X and 194.X.X.X ip's are not
valid with respect to the regexp.
Is this a bug? or am I wrong about the test?

I used http://www.fileformat.info/tool/regex.htm with
RegExp:
(?:[01257]|(?!127.0.0.)127|22[3-9]|2[3-9]\d|[12]\d{3,}|[3-9]\d\d+)\.\d+\.\d+\.\d+
Tests:
127.0.0.1
192.168.1.1
87.248.121.75
193.1.1.1
194.1.1.1


Could someone explain me which ip are valid according to this test ?
Thanks

Eric Rodriguez


Re: Problem with check_invalid_ip()

2009-05-29 Thread Eric Rodriguez
Hi,

I removed the negation ~ , the begin ^ and end $  charaters from the
original source:

sub check_for_illegal_ip {
  my ($self, $pms) = @_;

  foreach my $rcvd ( @{$pms-{relays_untrusted}} ) {
# (note this might miss some hits if the Received.pm skips any invalid IPs)
foreach my $check ( $rcvd-{ip}, $rcvd-{by} ) {
  return 1 if ($check =~ /^

(?:[01257]|(?!127.0.0.)127|22[3-9]|2[3-9]\d|[12]\d{3,}|[3-9]\d\d+)\.\d+\.\d+\.\d+
$/x);
}
  }
  return 0;
}


Here are my results:
Test Target String matches() replaceFirst() replaceAll() lookingAt() find()
group(0)  1 127.0.0.1 No 12 12 No Yes 7.0.0.1  2 192.168.1.1 No 19 19 No Yes
2.168.1.1  3 87.248.121.75 No 8 8 No Yes 7.248.121.75  4 193.1.1.1 No
193.1.1.1 193.1.1.1 No No  5 194.1.1.1 No 194.1.1.1 194.1.1.1 No No

If I understand correctly the first 3 tests are valid IP, but not the
193.1.1.1 and 194.1.1.1 ??

Eric Rodriguez


On Fri, May 29, 2009 at 13:53, Matt Kettler mkettler...@verizon.net wrote:

 Eric Rodriguez wrote:
  Hi,
 
  I'm having trouble with the check invalid_ip subroutine in the
  RelayEval.pm.
  See
 
 http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/RelayEval.pm?view=logr1=451385pathrev=451385
  
 http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/RelayEval.pm?view=logr1=451385pathrev=451385
 
 
  After a couple test, it seems that 193.X.X.X and 194.X.X.X ip's are
  not valid with respect to the regexp.
  Is this a bug? or am I wrong about the test?
 
  I used http://www.fileformat.info/tool/regex.htm with
  RegExp:
 
 (?:[01257]|(?!127.0.0.)127|22[3-9]|2[3-9]\d|[12]\d{3,}|[3-9]\d\d+)\.\d+\.\d+\.\d+
  Tests:
  127.0.0.1
  192.168.1.1
  87.248.121.75
  193.1.1.1
  194.1.1.1
 
 
  Could someone explain me which ip are valid according to this test ?
  Thanks
 
  Eric Rodriguez
 Using the above tool I get results telling me that 193.1.1.1 and
 194.1.1.1 do NOT match, and therefore are valid IPs.

 TestTarget String   matches()   replaceFirst()  replaceAll()
 lookingAt() find()  group(0)
 1   193.1.1.1   *No*193.1.1.1   193.1.1.1   No  No
 2   194.1.1.1   *No*194.1.1.1   194.1.1.1   No  No



 In fact, NONE of your test strings match the regex. But 127.1.1.1,
 correctly, does.





Re: Problem with check_invalid_ip()

2009-05-29 Thread Matt Kettler
Eric Rodriguez wrote:
 Hi,

 I'm having trouble with the check invalid_ip subroutine in the
 RelayEval.pm.
 See
 http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/RelayEval.pm?view=logr1=451385pathrev=451385
 http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/RelayEval.pm?view=logr1=451385pathrev=451385

 After a couple test, it seems that 193.X.X.X and 194.X.X.X ip's are
 not valid with respect to the regexp.
 Is this a bug? or am I wrong about the test?

 I used http://www.fileformat.info/tool/regex.htm with
 RegExp:   
 (?:[01257]|(?!127.0.0.)127|22[3-9]|2[3-9]\d|[12]\d{3,}|[3-9]\d\d+)\.\d+\.\d+\.\d+
 Tests:
 127.0.0.1
 192.168.1.1
 87.248.121.75
 193.1.1.1
 194.1.1.1


 Could someone explain me which ip are valid according to this test ?
 Thanks

 Eric Rodriguez
Using the above tool I get results telling me that 193.1.1.1 and
194.1.1.1 do NOT match, and therefore are valid IPs.

TestTarget String   matches()   replaceFirst()  replaceAll()
lookingAt() find()  group(0)
1   193.1.1.1   *No*193.1.1.1   193.1.1.1   No  No
2   194.1.1.1   *No*194.1.1.1   194.1.1.1   No  No



In fact, NONE of your test strings match the regex. But 127.1.1.1,
correctly, does.




Re: Problem with check_invalid_ip()

2009-05-29 Thread Theo Van Dinter
None of the IPs you listed will match.
Have you tried simply running a loop in Perl to see what the results are?

Also, negation ~ ?  What do you mean?  =~ is not a negation (that
would be !~).
Also also, the ^ and $ chars are important.  If you remove them,
you change the RE.


On Fri, May 29, 2009 at 7:59 AM, Eric Rodriguez thewa...@gmail.com wrote:
 Hi,

 I removed the negation ~ , the begin ^ and end $  charaters from the
 original source:

 sub check_for_illegal_ip {
   my ($self, $pms) = @_;

   foreach my $rcvd ( @{$pms-{relays_untrusted}} ) {

 # (note this might miss some hits if the Received.pm skips any invalid
 IPs)
 foreach my $check ( $rcvd-{ip}, $rcvd-{by} ) {
   return 1 if ($check =~ /^

   
 (?:[01257]|(?!127.0.0.)127|22[3-9]|2[3-9]\d|[12]\d{3,}|[3-9]\d\d+)\.\d+\.\d+\.\d+

   $/x);
 }
   }
   return 0;
 }

 Here are my results:
 Test Target String matches() replaceFirst() replaceAll() lookingAt() find()
 group(0)
 1 127.0.0.1 No 12 12 No Yes 7.0.0.1
 2 192.168.1.1 No 19 19 No Yes 2.168.1.1
 3 87.248.121.75 No 8 8 No Yes 7.248.121.75
 4
 193.1.1.1 No 193.1.1.1 193.1.1.1 No No
 5
 194.1.1.1 No 194.1.1.1 194.1.1.1 No No

 If I understand correctly the first 3 tests are valid IP, but not the
 193.1.1.1 and 194.1.1.1 ??

 Eric Rodriguez


 On Fri, May 29, 2009 at 13:53, Matt Kettler mkettler...@verizon.net wrote:

 Eric Rodriguez wrote:
  Hi,
 
  I'm having trouble with the check invalid_ip subroutine in the
  RelayEval.pm.
  See
 
  http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/RelayEval.pm?view=logr1=451385pathrev=451385
 
  http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/RelayEval.pm?view=logr1=451385pathrev=451385
 
  After a couple test, it seems that 193.X.X.X and 194.X.X.X ip's are
  not valid with respect to the regexp.
  Is this a bug? or am I wrong about the test?
 
  I used http://www.fileformat.info/tool/regex.htm with
  RegExp:
 
  (?:[01257]|(?!127.0.0.)127|22[3-9]|2[3-9]\d|[12]\d{3,}|[3-9]\d\d+)\.\d+\.\d+\.\d+
  Tests:
  127.0.0.1
  192.168.1.1
  87.248.121.75
  193.1.1.1
  194.1.1.1
 
 
  Could someone explain me which ip are valid according to this test ?
  Thanks
 
  Eric Rodriguez
 Using the above tool I get results telling me that 193.1.1.1 and
 194.1.1.1 do NOT match, and therefore are valid IPs.

 Test    Target String   matches()       replaceFirst()  replaceAll()
 lookingAt()     find()  group(0)
 1       193.1.1.1       *No*    193.1.1.1       193.1.1.1       No      No
 2       194.1.1.1       *No*    194.1.1.1       194.1.1.1       No      No



 In fact, NONE of your test strings match the regex. But 127.1.1.1,
 correctly, does.






Re: Problem with check_invalid_ip()

2009-05-29 Thread Eric Rodriguez
Hi,

You're right. removing begin and end chars was a bad idea.
I just tried in a perl routine, and all is fine...
So I'll have to find why an 194.X.X.X ip got stuck as a ILLEGAL_IP ...

Thanks for your help
Eric Rodriguez

On Fri, May 29, 2009 at 18:35, Theo Van Dinter felic...@apache.org wrote:

 None of the IPs you listed will match.
 Have you tried simply running a loop in Perl to see what the results are?

 Also, negation ~ ?  What do you mean?  =~ is not a negation (that
 would be !~).
 Also also, the ^ and $ chars are important.  If you remove them,
 you change the RE.


 On Fri, May 29, 2009 at 7:59 AM, Eric Rodriguez thewa...@gmail.com
 wrote:
  Hi,
 
  I removed the negation ~ , the begin ^ and end $  charaters from the
  original source:
 
  sub check_for_illegal_ip {
my ($self, $pms) = @_;
 
foreach my $rcvd ( @{$pms-{relays_untrusted}} ) {
 
  # (note this might miss some hits if the Received.pm skips any
 invalid
  IPs)
  foreach my $check ( $rcvd-{ip}, $rcvd-{by} ) {
return 1 if ($check =~ /^
 
 
 (?:[01257]|(?!127.0.0.)127|22[3-9]|2[3-9]\d|[12]\d{3,}|[3-9]\d\d+)\.\d+\.\d+\.\d+
 
$/x);
  }
}
return 0;
  }
 
  Here are my results:
  Test Target String matches() replaceFirst() replaceAll() lookingAt()
 find()
  group(0)
  1 127.0.0.1 No 12 12 No Yes 7.0.0.1
  2 192.168.1.1 No 19 19 No Yes 2.168.1.1
  3 87.248.121.75 No 8 8 No Yes 7.248.121.75
  4
  193.1.1.1 No 193.1.1.1 193.1.1.1 No No
  5
  194.1.1.1 No 194.1.1.1 194.1.1.1 No No
 
  If I understand correctly the first 3 tests are valid IP, but not the
  193.1.1.1 and 194.1.1.1 ??
 
  Eric Rodriguez
 
 
  On Fri, May 29, 2009 at 13:53, Matt Kettler mkettler...@verizon.net
 wrote:
 
  Eric Rodriguez wrote:
   Hi,
  
   I'm having trouble with the check invalid_ip subroutine in the
   RelayEval.pm.
   See
  
  
 http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/RelayEval.pm?view=logr1=451385pathrev=451385
  
   
 http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/RelayEval.pm?view=logr1=451385pathrev=451385
 
  
   After a couple test, it seems that 193.X.X.X and 194.X.X.X ip's are
   not valid with respect to the regexp.
   Is this a bug? or am I wrong about the test?
  
   I used http://www.fileformat.info/tool/regex.htm with
   RegExp:
  
  
 (?:[01257]|(?!127.0.0.)127|22[3-9]|2[3-9]\d|[12]\d{3,}|[3-9]\d\d+)\.\d+\.\d+\.\d+
   Tests:
   127.0.0.1
   192.168.1.1
   87.248.121.75
   193.1.1.1
   194.1.1.1
  
  
   Could someone explain me which ip are valid according to this test ?
   Thanks
  
   Eric Rodriguez
  Using the above tool I get results telling me that 193.1.1.1 and
  194.1.1.1 do NOT match, and therefore are valid IPs.
 
  TestTarget String   matches()   replaceFirst()  replaceAll()
  lookingAt() find()  group(0)
  1   193.1.1.1   *No*193.1.1.1   193.1.1.1   No
  No
  2   194.1.1.1   *No*194.1.1.1   194.1.1.1   No
  No
 
 
 
  In fact, NONE of your test strings match the regex. But 127.1.1.1,
  correctly, does.
 
 
 
 



Re: Problem with check_invalid_ip()

2009-05-29 Thread Matt Kettler
Eric Rodriguez wrote:
 Hi,

 I removed the negation ~ , the begin ^ and end $  charaters from the
 original source:
 sub check_for_illegal_ip {
   my ($self, $pms) = @_;

   foreach my $rcvd ( @{$pms-{relays_untrusted}} ) {

 # (note this might miss some hits if the Received.pm skips any invalid 
 IPs)
 foreach my $check ( $rcvd-{ip}, $rcvd-{by} ) {
   return 1 if ($check =~ /^
   
 (?:[01257]|(?!127.0.0.)127|22[3-9]|2[3-9]\d|[12]\d{3,}|[3-9]\d\d+)\.\d+\.\d+\.\d+

   $/x);
 }
   }
   return 0;
 }
   

 Here are my results:
 Test  Target String   matches()   replaceFirst()  replaceAll()
 lookingAt()   find()  group(0)
 1 127.0.0.1   No  12  12  No  Yes 7.0.0.1
 2 192.168.1.1 No  19  19  No  Yes 2.168.1.1
 3 87.248.121.75   No  8   8   No  Yes 7.248.121.75
 4 193.1.1.1   No  193.1.1.1   193.1.1.1   No  No
 5 194.1.1.1   No  194.1.1.1   194.1.1.1   No  No



 If I understand correctly the first 3 tests are valid IP, but not the
 193.1.1.1 and 194.1.1.1 ??

 Eric Rodriguez

No, none of the 5 has yes in the matches column so they're all valid
(ie: none of them matches the regex).

The other columns are irrelevant to the application here. Please ignore
them unless you fully understand them.