Handle IPv6 addresses in OCSP_parse_url.
authorTom Greenslade <thomgree@cisco.com>
Fri, 27 Jun 2014 16:30:59 +0000 (17:30 +0100)
committerDr. Stephen Henson <steve@openssl.org>
Fri, 27 Jun 2014 16:31:55 +0000 (17:31 +0100)
PR#2783
(cherry picked from commit b36f35cda964544a15d53d3fdfec9b2bab8cacb1)

crypto/ocsp/ocsp_lib.c

index 441ccb7a9e4eba8326b0d0d752941a90500f49e2..5883b4e0b5eeba5845c845f67d829da6caeb9e98 100644 (file)
@@ -220,8 +220,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;