From 1d9bc936c2b1b3bd003fe3f3fdd56b6150ca3020 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Tue, 7 Jun 2005 13:45:58 +0000 Subject: Adapt patch from Adam Langley: fix possible memory leak in tor_lookup_hostname svn:r4326 --- src/common/compat.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src/common') diff --git a/src/common/compat.c b/src/common/compat.c index 24266987ac..8bdecfc7fb 100644 --- a/src/common/compat.c +++ b/src/common/compat.c @@ -526,8 +526,9 @@ int tor_lookup_hostname(const char *name, uint32_t *addr) } else { #ifdef HAVE_GETADDRINFO int err; - struct addrinfo *res, *res_p; + struct addrinfo *res=NULL, *res_p; struct addrinfo hints; + int result = -1; memset(&hints, 0, sizeof(hints)); hints.ai_family = PF_INET; hints.ai_socktype = SOCK_STREAM; @@ -537,14 +538,13 @@ int tor_lookup_hostname(const char *name, uint32_t *addr) if (res_p->ai_family == AF_INET) { struct sockaddr_in *sin = (struct sockaddr_in *)res_p->ai_addr; memcpy(addr, &sin->sin_addr, 4); - freeaddrinfo(res); - return 0; - } else { + result = 0; + break; } } - return -1; + freeaddrinfo(res); + return result; } - return (err == EAI_AGAIN) ? 1 : -1; #else struct hostent *ent; -- cgit v1.2.3-54-g00ecf