summaryrefslogtreecommitdiffstats
path: root/crypto/ocsp
diff options
context:
space:
mode:
authorTom Greenslade <thomgree@cisco.com>2014-06-27 17:30:59 +0100
committerDr. Stephen Henson <steve@openssl.org>2014-06-27 17:30:59 +0100
commitb36f35cda964544a15d53d3fdfec9b2bab8cacb1 (patch)
treefdaac9ecaef78c2809f6187087d76f64b5cfc559 /crypto/ocsp
parent0436369fccd128cb7f6a8538d5fed1c876c437af (diff)
Handle IPv6 addresses in OCSP_parse_url.
PR#2783
Diffstat (limited to 'crypto/ocsp')
-rw-r--r--crypto/ocsp/ocsp_lib.c13
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;