There is a defect in the handling of a mark ranges that includes a mask with low-order zero bits. The attached patch corrects the problem.

-Tom
--
Tom Eastep        \ When I die, I want to go like my Grandfather who
Shoreline,         \ died peacefully in his sleep. Not screaming like
Washington, USA     \ all of the passengers in his car
http://shorewall.net \________________________________________________
diff --git a/Shorewall/Perl/Shorewall/Tc.pm b/Shorewall/Perl/Shorewall/Tc.pm
index 897a6c8..9a84dc0 100644
--- a/Shorewall/Perl/Shorewall/Tc.pm
+++ b/Shorewall/Perl/Shorewall/Tc.pm
@@ -649,7 +649,7 @@ sub process_tc_rule( ) {
 
 	$mask = in_hex $mask;
 
-	my $marks = $mark1val - $markval + 1;
+	my $marks = int( ( $mark1val - $markval + $increment ) / $increment );
 
 	for ( my $packet = 0; $packet < $marks; $packet++, $markval += $increment ) {
 	    my $match = "-m statistic --mode nth --every $marks --packet $packet ";
------------------------------------------------------------------------------
The Windows 8 Center 
In partnership with Sourceforge
Your idea - your app - 30 days. Get started!
http://windows8center.sourceforge.net/
what-html-developers-need-to-know-about-coding-windows-8-metro-style-apps/
_______________________________________________
Shorewall-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/shorewall-devel

Reply via email to