1
0
mirror of https://github.com/moparisthebest/curl synced 2024-12-22 08:08:50 -05:00

Curl_http: strip off [brackets] from ipv6-only host headers

Since the host name is passed in to the cookie engine it will not work
correctly if the brackets are left in the name.

Bug:http://curl.haxx.se/mail/lib-2012-03/0036.html
This commit is contained in:
Andrei Cipu 2012-03-10 16:48:59 +01:00 committed by Daniel Stenberg
parent b50e9e9e9e
commit e650dbde86

View File

@ -1840,9 +1840,19 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
/* ignore empty data */ /* ignore empty data */
free(cookiehost); free(cookiehost);
else { else {
char *colon = strchr(cookiehost, ':'); /* If the host begins with '[', we start searching for the port after
if(colon) the bracket has been closed */
*colon = 0; /* The host must not include an embedded port number */ int startsearch = 0;
if(*cookiehost == '[') {
char *closingbracket = strchr(++cookiehost, ']');
if(closingbracket)
*closingbracket = 0;
}
else {
char *colon = strchr(cookiehost + startsearch, ':');
if(colon)
*colon = 0; /* The host must not include an embedded port number */
}
Curl_safefree(conn->allocptr.cookiehost); Curl_safefree(conn->allocptr.cookiehost);
conn->allocptr.cookiehost = cookiehost; conn->allocptr.cookiehost = cookiehost;
} }