forked from extern/shorewall_code
Better fix for '-0x...' handling
This commit is contained in:
parent
846af27ebf
commit
e465fea86a
@ -735,11 +735,13 @@ sub assert( $ ) {
|
||||
# Convert value to decimal number
|
||||
#
|
||||
sub numeric_value ( $ ) {
|
||||
no warnings;
|
||||
my $mark = lc $_[0];
|
||||
return undef unless $mark =~ /^-?(0x[a-f0-9]+|0[0-7]*|[1-9]\d*)$/;
|
||||
$mark =~ /^0/ ? oct $mark : $mark;
|
||||
my $negative = ( $mark =~ s/^-// );
|
||||
return undef unless $mark =~ /^(0x[a-f0-9]+|0[0-7]*|[1-9]\d*)$/;
|
||||
no warnings;
|
||||
$mark = ( $mark =~ /^0/ ? oct $mark : $mark );
|
||||
use warnings;
|
||||
$negative ? - $mark : $mark;
|
||||
}
|
||||
|
||||
sub numeric_value1 ( $ ) {
|
||||
|
@ -316,14 +316,12 @@ sub process_tc_rule( $$$$$$$$$$$$ ) {
|
||||
|
||||
if ( defined $m1 && $m1 ne '' ) {
|
||||
$val = numeric_value ($m1);
|
||||
fatal_error "Invalid Mask ($m1)" if $m1 =~ /^-0x/;
|
||||
fatal_error "Invalid Mask ($m1)" unless defined $val && $val && $val <= 0xffffffff;
|
||||
$mask1 = $m1;
|
||||
}
|
||||
|
||||
if ( defined $m2 && $m2 ne '' ) {
|
||||
$val = numeric_value ($m2);
|
||||
fatal_error "Invalid Mask ($m2)" if $m2 =~ /^-0x/;
|
||||
fatal_error "Invalid Mask ($m2)" unless defined $val && $val <= 0xffffffff;
|
||||
$mask2 = $m2;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user