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:31:44 +0100
commite9daf8a9cec2d86b01f3b524ac9011a59c9047ee (patch)
tree1e0a28b122d67fa80dba3845b823393f5bc586e2 /crypto/ocsp
parentcf0156622a50df3f5fa9ba98bdbf6935fa0769d9 (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.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/crypto/ocsp/ocsp_lib.c b/crypto/ocsp/ocsp_lib.c
index a94dc838ee..5061c0578b 100644
--- a/crypto/ocsp/ocsp_lib.c
+++ b/crypto/ocsp/ocsp_lib.c
@@ -222,8 +222,19 @@ int OCSP_parse_url(char *url, char **phost, char **pport, char **ppath, int *pss
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;