aboutsummaryrefslogtreecommitdiffstats
path: root/socket.c
diff options
context:
space:
mode:
authorMartin Pool <mbp@samba.org>2002-03-16 09:00:44 +0000
committerMartin Pool <mbp@samba.org>2002-03-16 09:00:44 +0000
commit6b2d24de2c672476ae2591d28b82ff747d42a101 (patch)
treec446d00e0c91c8a3487eb443a1e44db812949a16 /socket.c
parente23d790fa73c6c615a81e16d21a7f7684922253c (diff)
downloadandroid_external_rsync-6b2d24de2c672476ae2591d28b82ff747d42a101.tar.gz
android_external_rsync-6b2d24de2c672476ae2591d28b82ff747d42a101.tar.bz2
android_external_rsync-6b2d24de2c672476ae2591d28b82ff747d42a101.zip
Make sure that freeaddrinfo is called on all code paths leading away
from a call to getaddrinfo. (Dave Dykstra) <20011219085021.A23107@lucent.com>
Diffstat (limited to 'socket.c')
-rw-r--r--socket.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/socket.c b/socket.c
index acf6234b..15dea8b8 100644
--- a/socket.c
+++ b/socket.c
@@ -119,17 +119,17 @@ int try_bind_local(int s,
return -1;
}
- /* FIXME: Call freeaddrinfo() on all return paths! */
-
for (r = bres_all; r; r = r->ai_next) {
if (bind(s, r->ai_addr, r->ai_addrlen) == -1)
continue;
+ freeaddrinfo(bres_all);
return s;
}
/* no error message; there might be some problem that allows
* creation of the socket but not binding, perhaps if the
* machine has no ipv6 address of this name. */
+ freeaddrinfo(bres_all);
return -1;
}
@@ -332,7 +332,7 @@ static int open_socket_in(int type, int port, const char *bind_address,
continue;
}
- /* FIXME: Call freeaddrinfo? */
+ freeaddrinfo(all_ai);
return s;
}