diff options
author | Tom Greenslade <thomgree@cisco.com> | 2014-06-27 17:30:59 +0100 |
---|---|---|
committer | Dr. Stephen Henson <steve@openssl.org> | 2014-06-27 17:31:37 +0100 |
commit | c57745596c60a84adaf1f5289ec165abc066d551 (patch) | |
tree | 9ab2e896491cb9e78a3353934e3c8c6126268efc /crypto/ocsp | |
parent | 65e4dca40cb15f3acc878e26d734ec93bd367dca (diff) |
Handle IPv6 addresses in OCSP_parse_url.
PR#2783
(cherry picked from commit b36f35cda964544a15d53d3fdfec9b2bab8cacb1)
Diffstat (limited to 'crypto/ocsp')
-rw-r--r-- | crypto/ocsp/ocsp_lib.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/crypto/ocsp/ocsp_lib.c b/crypto/ocsp/ocsp_lib.c index 2678e222dd..4a7fe2592c 100644 --- a/crypto/ocsp/ocsp_lib.c +++ b/crypto/ocsp/ocsp_lib.c @@ -222,8 +222,19 @@ int OCSP_parse_url(const char *url, char **phost, char **pport, char **ppath, in if (!*ppath) goto mem_err; + p = host; + if(host[0] == '[') + { + /* ipv6 literal */ + host++; + p = strchr(host, ']'); + if(!p) goto parse_err; + *p = '\0'; + p++; + } + /* Look for optional ':' for port number */ - if ((p = strchr(host, ':'))) + if ((p = strchr(p, ':'))) { *p = 0; port = p + 1; |