From: Florian Weimer Date: Mon, 20 Jan 2020 17:37:13 +0000 (+0100) Subject: getaddrinfo: Fix resource leak after strdup failure in gethosts [BZ #25425] X-Git-Tag: glibc-2.31~16 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8b222fa38700422b4da6731806835f0bbf40920d;p=thirdparty%2Fglibc.git getaddrinfo: Fix resource leak after strdup failure in gethosts [BZ #25425] Filip Ochnik spotted that one of the error jumps in gethosts fails to call __resolv_context_put to release the resolver context. Fixes commit 352f4ff9a268b81ef5d4b2413f582565806e4790 ("resolv: Introduce struct resolv_context [BZ #21668]") and commit 964263bb8d650f1681665c55704fb01a8e725621 ("getaddrinfo: Release resolver context on error in gethosts [BZ #21885]"). Reviewed-by: Siddhesh Poyarekar --- diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c index f813d85aa39..538691a5986 100644 --- a/sysdeps/posix/getaddrinfo.c +++ b/sysdeps/posix/getaddrinfo.c @@ -288,6 +288,7 @@ convert_hostent_to_gaih_addrtuple (const struct addrinfo *req, canonbuf = __strdup (localcanon); \ if (canonbuf == NULL) \ { \ + __resolv_context_put (res_ctx); \ result = -EAI_SYSTEM; \ goto free_and_return; \ } \