summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--crypto/http/http_lib.c5
-rw-r--r--test/http_test.c2
2 files changed, 3 insertions, 4 deletions
diff --git a/crypto/http/http_lib.c b/crypto/http/http_lib.c
index 3bf642a4f4..f0fc770f22 100644
--- a/crypto/http/http_lib.c
+++ b/crypto/http/http_lib.c
@@ -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, ':');
diff --git a/test/http_test.c b/test/http_test.c
index e59ef63833..0a3389c15f 100644
--- a/test/http_test.c
+++ b/test/http_test.c
@@ -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)