BB#116: fix invalid free when connecting to ipv6 literal address

When removing the '[' and ']' characers from the ipv6 literal address, make sure
the pointer that is later free'd stays a malloced pointer by memmoving the
string one place left.

Signed-off-by: Michael Adam <obnox@samba.org>
(cherry picked from commit bb2e894e0d)
This commit is contained in:
Michael Adam 2013-11-16 13:07:19 +01:00
parent 4ef81ff95d
commit e0ad093b0f

View File

@ -221,7 +221,10 @@ static int extract_http_url (const char *url, struct request_s *request)
/* Remove any surrounding '[' and ']' from IPv6 literals */
p = strrchr (request->host, ']');
if (p && (*(request->host) == '[')) {
request->host++;
memmove(request->host, request->host + 1,
strlen(request->host) - 2);
*p = '\0';
p--;
*p = '\0';
}