mirror of
https://github.com/curl/curl.git
synced 2026-07-26 06:57:16 +03:00
noproxy: fix the IPV6 network mask pattern match
It would mismatch if the network prefix length with was not divisible by 8. Extended test 1614 to verify Reported-by: Stanislav Fort Closes #18891
This commit is contained in:
parent
71b5e02590
commit
1a3a5cb720
2 changed files with 23 additions and 1 deletions
|
|
@ -99,7 +99,7 @@ UNITTEST bool Curl_cidr6_match(const char *ipv6,
|
|||
return FALSE;
|
||||
if(bytes && memcmp(address, check, bytes))
|
||||
return FALSE;
|
||||
if(rest && !((address[bytes] ^ check[bytes]) & (0xff << (8 - rest))))
|
||||
if(rest && ((address[bytes] ^ check[bytes]) & (0xff << (8 - rest))))
|
||||
return FALSE;
|
||||
|
||||
return TRUE;
|
||||
|
|
|
|||
|
|
@ -111,6 +111,28 @@ static CURLcode test_unit1614(const char *arg)
|
|||
{ "[::1]", "foo, bar, ::1/64", TRUE},
|
||||
{ "[::1]", "::1/64", TRUE},
|
||||
{ "[::1]", "::1/96", TRUE},
|
||||
{ "[::1]", "::1/127", TRUE},
|
||||
{ "[::1]", "::1/126", TRUE},
|
||||
{ "[::1]", "::1/125", TRUE},
|
||||
{ "[::1]", "::1/124", TRUE},
|
||||
{ "[::1]", "::1/123", TRUE},
|
||||
{ "[::1]", "::1/122", TRUE},
|
||||
{ "[2001:db8:8000::1]", "2001:db8::/65", FALSE},
|
||||
{ "[2001:db8:8000::1]", "2001:db8::/66", FALSE},
|
||||
{ "[2001:db8:8000::1]", "2001:db8::/67", FALSE},
|
||||
{ "[2001:db8:8000::1]", "2001:db8::/68", FALSE},
|
||||
{ "[2001:db8:8000::1]", "2001:db8::/69", FALSE},
|
||||
{ "[2001:db8:8000::1]", "2001:db8::/70", FALSE},
|
||||
{ "[2001:db8:8000::1]", "2001:db8::/71", FALSE},
|
||||
{ "[2001:db8:8000::1]", "2001:db8::/72", FALSE},
|
||||
{ "[2001:db8::1]", "2001:db8::/65", TRUE},
|
||||
{ "[2001:db8::1]", "2001:db8::/66", TRUE},
|
||||
{ "[2001:db8::1]", "2001:db8::/67", TRUE},
|
||||
{ "[2001:db8::1]", "2001:db8::/68", TRUE},
|
||||
{ "[2001:db8::1]", "2001:db8::/69", TRUE},
|
||||
{ "[2001:db8::1]", "2001:db8::/70", TRUE},
|
||||
{ "[2001:db8::1]", "2001:db8::/71", TRUE},
|
||||
{ "[2001:db8::1]", "2001:db8::/72", TRUE},
|
||||
{ "[::1]", "::1/129", FALSE},
|
||||
{ "bar", "foo, bar, ::1/64", TRUE},
|
||||
{ "BAr", "foo, bar, ::1/64", TRUE},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue