From c7203c4b2e378dc0d00bc339cb7b6d8bd66d3185 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=B6sz=C3=B6rm=C3=A9nyi=20Zolt=C3=A1n?= Date: Fri, 2 Jan 2015 09:13:51 +0100 Subject: [PATCH] Fix a leak caused by not freeing the result of getaddrinfo_a(). A small block is leaked for every call of nn_socket() which can be massive on the client side. --- src/transports/utils/dns_getaddrinfo_a.inc | 1 + 1 file changed, 1 insertion(+) diff --git a/src/transports/utils/dns_getaddrinfo_a.inc b/src/transports/utils/dns_getaddrinfo_a.inc index 9e3dd90ba..f9bc244bb 100644 --- a/src/transports/utils/dns_getaddrinfo_a.inc +++ b/src/transports/utils/dns_getaddrinfo_a.inc @@ -151,6 +151,7 @@ static void nn_dns_notify (union sigval sval) memcpy (&self->result->addr, self->gcb.ar_result->ai_addr, self->gcb.ar_result->ai_addrlen); self->result->addrlen = (size_t) self->gcb.ar_result->ai_addrlen; + freeaddrinfo(self->gcb.ar_result); nn_fsm_action (&self->fsm, NN_DNS_ACTION_DONE); } nn_ctx_leave (self->fsm.ctx);