OSSL_parse_url(): Improve handling of IPv6 addresses

Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/14630)
This commit is contained in:
Dr. David von Oheimb 2021-03-08 09:59:35 +01:00 committed by Dr. David von Oheimb
parent f7c4d86228
commit 2318379119
2 changed files with 3 additions and 4 deletions

View File

@ -87,11 +87,10 @@ int OSSL_parse_url(const char *url, char **pscheme, char **puser, char **phost,
/* parse host name/address as far as needed here */
if (host[0] == '[') {
/* ipv6 literal, which may include ':' */
host++;
host_end = strchr(host, ']');
host_end = strchr(host + 1, ']');
if (host_end == NULL)
goto parse_err;
p = host_end + 1;
p = ++host_end;
} else {
/* look for start of optional port, path, query, or fragment */
host_end = strchr(host, ':');

View File

@ -204,7 +204,7 @@ static int test_http_url_ipv4(void)
static int test_http_url_ipv6(void)
{
return test_http_url_ok("http://[FF01::101]:6", 0, "FF01::101", "6", "/");
return test_http_url_ok("http://[FF01::101]:6", 0, "[FF01::101]", "6", "/");
}
static int test_http_url_invalid(const char *url)