diff --git a/lib/libfetch/common.c b/lib/libfetch/common.c index 00f8b92399ca..1536ece56bb1 100644 --- a/lib/libfetch/common.c +++ b/lib/libfetch/common.c @@ -256,8 +256,11 @@ fetch_bind(int sd, int af, const char *addr) if ((err = getaddrinfo(addr, NULL, &hints, &res0)) != 0) return (-1); 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) { + freeaddrinfo(res0); return (0); + } + freeaddrinfo(res0); return (-1); }