} else
#endif
{
- struct addrinfo ai, *res;
+ struct addrinfo ai, *res, *result;
void *p = NULL;
memset (&ai, 0, sizeof ai);
ai.ai_socktype = SOCK_STREAM;
ai.ai_flags = AI_CANONNAME;
- if (getaddrinfo(ads, NULL, &ai, &res))
+ if (getaddrinfo(ads, NULL, &ai, &result))
goto oom4;
+ res = result;
while (!p && res) {
switch (res->ai_family) {
case AF_INET:
res = res->ai_next;
}
- if (!p)
+ if (!p) {
+ freeaddrinfo(result);
goto oom4;
+ }
server_addr4.sin_family = AF_INET;
server_addr4.sin_addr = *((struct in_addr *)p);
bzero(&server_addr4.sin_zero, 8);
+ freeaddrinfo(result);
}
if (wsi->sock < 0) {