diff options
-rw-r--r-- | crypto/http/http_lib.c | 5 | ||||
-rw-r--r-- | test/http_test.c | 2 |
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) |