diff --git a/lib/hostip.c b/lib/hostip.c index 1707fd2d72e58c1446ec3a83992c94ca15291517..df054589daa8d9e4d43828d2532788f97d7fda55 100644 --- a/lib/hostip.c +++ b/lib/hostip.c @@ -530,8 +530,8 @@ Curl_addrinfo *Curl_getaddrinfo(struct SessionHandle *data, struct hostent hostentry; char *h_addr_list[2]; struct in_addr addrentry; - char h_name[1]; - } *buf = (struct namebuf *)malloc(sizeof(struct namebuf)+128); + char h_name[128]; + } *buf = (struct namebuf *)malloc(sizeof(struct namebuf)); if(!buf) return NULL; /* major failure */ *bufp = (char *)buf; @@ -545,8 +545,7 @@ Curl_addrinfo *Curl_getaddrinfo(struct SessionHandle *data, h->h_addrtype = AF_INET; h->h_length = sizeof(*addrentry); h->h_name = &buf->h_name[0]; - MakeIP(ntohl(in), h->h_name, - sizeof(struct namebuf)+128 - (long)(h->h_name) + (long)buf); + MakeIP(ntohl(in), h->h_name, sizeof(buf->h_name)); } #if defined(HAVE_GETHOSTBYNAME_R) else {