From 1c9bd4ca4ea3acfecce3459d853e4e6d146d1a37 Mon Sep 17 00:00:00 2001 From: Olaf Bergmann Date: Fri, 29 Jun 2012 11:25:40 +0200 Subject: [PATCH] fixed Memory leak in client.c - ID: 3538646 (patch by John Sucaet) --- examples/client.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/examples/client.c b/examples/client.c index af219411..1368f42b 100644 --- a/examples/client.c +++ b/examples/client.c @@ -198,7 +198,7 @@ resolve_address(const str *server, struct sockaddr *dst) { struct addrinfo *res, *ainfo; struct addrinfo hints; static char addrstr[256]; - int error; + int error, len=-1; memset(addrstr, 0, sizeof(addrstr)); if (server->length) @@ -218,20 +218,20 @@ resolve_address(const str *server, struct sockaddr *dst) { } for (ainfo = res; ainfo != NULL; ainfo = ainfo->ai_next) { - switch (ainfo->ai_family) { case AF_INET6: case AF_INET: - - memcpy(dst, ainfo->ai_addr, ainfo->ai_addrlen); - return ainfo->ai_addrlen; + len = ainfo->ai_addrlen; + memcpy(dst, ainfo->ai_addr, len); + goto finish; default: ; } } + finish: freeaddrinfo(res); - return -1; + return len; } static inline coap_opt_t *