From aa26b75677348de562ed348ee93676ffb65d06cb Mon Sep 17 00:00:00 2001 From: Jamie Cameron Date: Fri, 8 Dec 2017 23:29:37 -0800 Subject: [PATCH] IPv6 network size is a number of bits, and so must only be divisble by 8 --- miniserv.pl | 2 +- webmin/lang/en | 2 +- webmin/webmin-lib.pl | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/miniserv.pl b/miniserv.pl index 1bd540bc7..300a2bba6 100755 --- a/miniserv.pl +++ b/miniserv.pl @@ -2849,7 +2849,7 @@ for($i=2; $i<@_; $i++) { # Compare with an IPv6 network local $v6size = $2; local $v6addr = &canonicalize_ip6($1); - local $bytes = $v6size / 16; + local $bytes = $v6size / 8; @mo = split(/:/, $v6addr); local @io6 = split(/:/, &canonicalize_ip6($_[0])); for($j=0; $j<$bytes; $j++) { diff --git a/webmin/lang/en b/webmin/lang/en index 80e75daea..0514d2de0 100644 --- a/webmin/lang/en +++ b/webmin/lang/en @@ -29,7 +29,7 @@ access_ecidr='$1' is not a valid CIDR number access_eip='$1' is not a complete IP or network address access_eip6='$1' is not a complete IPv6 or network address access_ecidr6='$1' is not a valid IPv6 network size -access_ecidr16=IPv6 network size '$1' must be divisible by 16 +access_ecidr8=IPv6 network size '$1' must be divisible by 8 access_ehost=Failed to find IP address for '$1' access_eself=Your current IP address ($1) would be denied access_always=Resolve hostnames on every request? diff --git a/webmin/webmin-lib.pl b/webmin/webmin-lib.pl index 7b9974c58..d8295a22d 100755 --- a/webmin/webmin-lib.pl +++ b/webmin/webmin-lib.pl @@ -1542,7 +1542,7 @@ for(my $i=1; $i<@_; $i++) { # Compare with an IPv6 network my $v6size = $2; my $v6addr = &canonicalize_ip6($1); - my $bytes = $v6size / 16; + my $bytes = $v6size / 8; my @mo = split(/:/, $v6addr); my @io = split(/:/, &canonicalize_ip6($_[0])); for(my $j=0; $j<$bytes; $j++) { @@ -1614,8 +1614,8 @@ elsif ($h =~ /^([a-f0-9:]+)\/(\d+)$/) { return &text('access_eip6', $1); $2 >= 0 && $2 <= 128 || return &text('access_ecidr6', "$2"); - $2 % 16 == 0 || - return &text('access_ecidr16', "$2"); + $2 % 8 == 0 || + return &text('access_ecidr8', "$2"); } elsif ($h =~ /^[a-f0-9:]+$/) { # IPv6 address