lib/fetch/common.c: fix CID 62681 correctly (resource leak).

This commit is contained in:
Juan RP 2014-10-05 10:21:18 +02:00
parent fe80347a32
commit 25e8fca7b4

View File

@ -253,6 +253,7 @@ int
fetch_bind(int sd, int af, const char *addr) fetch_bind(int sd, int af, const char *addr)
{ {
struct addrinfo hints, *res, *res0; struct addrinfo hints, *res, *res0;
int rv = -1;
memset(&hints, 0, sizeof(hints)); memset(&hints, 0, sizeof(hints));
hints.ai_family = af; hints.ai_family = af;
@ -261,11 +262,13 @@ fetch_bind(int sd, int af, const char *addr)
if (getaddrinfo(addr, NULL, &hints, &res0)) if (getaddrinfo(addr, NULL, &hints, &res0))
return (-1); return (-1);
for (res = res0; res; res = res->ai_next) { for (res = res0; res; res = res->ai_next) {
if (bind(sd, res->ai_addr, res->ai_addrlen) == 0) if (bind(sd, res->ai_addr, res->ai_addrlen) == 0) {
return (0); rv = 0;
break;
}
} }
freeaddrinfo(res0); freeaddrinfo(res0);
return (-1); return rv;
} }