mirror of
https://github.com/pi-hole/pi-hole
synced 2024-12-22 06:48:07 +00:00
Merge pull request #4121 from pi-hole/fix/port_hash
Fix port separator in IPv4 address validation code
This commit is contained in:
commit
18bedc0493
@ -1025,9 +1025,8 @@ valid_ip() {
|
||||
# Regex matching one IPv4 component, i.e. an integer from 0 to 255.
|
||||
# See https://tools.ietf.org/html/rfc1340
|
||||
local ipv4elem="(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]?|0)";
|
||||
# Regex matching an optional port beginning with : from 0 to 65535
|
||||
# See https://tools.ietf.org/html/rfc1340#page-33
|
||||
local portelem="(:(6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|6[0-4][0-9]{3}|[1-5][0-9]{4}|[1-9][0-9]{0,3}|0))?";
|
||||
# Regex matching an optional port (starting with '#') range of 1-65536
|
||||
local portelem="(#(6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|6[0-4][0-9]{3}|[1-5][0-9]{4}|[1-9][0-9]{0,3}|0))?";
|
||||
# Build a full IPv4 regex from the above subexpressions
|
||||
local regex="^${ipv4elem}\.${ipv4elem}\.${ipv4elem}\.${ipv4elem}${portelem}$"
|
||||
|
||||
@ -1046,8 +1045,8 @@ valid_ip6() {
|
||||
local ipv6elem="[0-9a-fA-F]{1,4}"
|
||||
# Regex matching an IPv6 CIDR, i.e. 1 to 128
|
||||
local v6cidr="(\\/([1-9]|[1-9][0-9]|1[0-1][0-9]|12[0-8])){0,1}"
|
||||
# Regex matching an optional port beginning with # matching optional port number starting '#' with range of 1-65536
|
||||
local portelem="(#([1-9]|[1-8][0-9]|9[0-9]|[1-8][0-9]{2}|9[0-8][0-9]|99[0-9]|[1-8][0-9]{3}|9[0-8][0-9]{2}|99[0-8][0-9]|999[0-9]|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-6]))?"
|
||||
# Regex matching an optional port (starting with '#') range of 1-65536
|
||||
local portelem="(#(6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|6[0-4][0-9]{3}|[1-5][0-9]{4}|[1-9][0-9]{0,3}|0))?";
|
||||
# Build a full IPv6 regex from the above subexpressions
|
||||
local regex="^(((${ipv6elem}))*((:${ipv6elem}))*::((${ipv6elem}))*((:${ipv6elem}))*|((${ipv6elem}))((:${ipv6elem})){7})${v6cidr}${portelem}$"
|
||||
|
||||
|
@ -546,23 +546,23 @@ def test_validate_ip(Pihole):
|
||||
test_address('256.255.255.255', False)
|
||||
test_address('1092.168.1.1', False)
|
||||
test_address('not an IP', False)
|
||||
test_address('8.8.8.8:', False)
|
||||
test_address('8.8.8.8:0')
|
||||
test_address('8.8.8.8:1')
|
||||
test_address('8.8.8.8:42')
|
||||
test_address('8.8.8.8:888')
|
||||
test_address('8.8.8.8:1337')
|
||||
test_address('8.8.8.8:65535')
|
||||
test_address('8.8.8.8:65536', False)
|
||||
test_address('8.8.8.8:-1', False)
|
||||
test_address('8.8.8.8#', False)
|
||||
test_address('8.8.8.8#0')
|
||||
test_address('8.8.8.8#1')
|
||||
test_address('8.8.8.8#42')
|
||||
test_address('8.8.8.8#888')
|
||||
test_address('8.8.8.8#1337')
|
||||
test_address('8.8.8.8#65535')
|
||||
test_address('8.8.8.8#65536', False)
|
||||
test_address('8.8.8.8#-1', False)
|
||||
test_address('00.0.0.0', False)
|
||||
test_address('010.0.0.0', False)
|
||||
test_address('001.0.0.0', False)
|
||||
test_address('0.0.0.0:00', False)
|
||||
test_address('0.0.0.0:01', False)
|
||||
test_address('0.0.0.0:001', False)
|
||||
test_address('0.0.0.0:0001', False)
|
||||
test_address('0.0.0.0:00001', False)
|
||||
test_address('0.0.0.0#00', False)
|
||||
test_address('0.0.0.0#01', False)
|
||||
test_address('0.0.0.0#001', False)
|
||||
test_address('0.0.0.0#0001', False)
|
||||
test_address('0.0.0.0#00001', False)
|
||||
|
||||
|
||||
def test_os_check_fails(Pihole):
|
||||
|
Loading…
Reference in New Issue
Block a user