From: Florian Weimer Date: Wed, 9 Aug 2017 15:46:04 +0000 (+0200) Subject: nss: Call __resolv_context_put before early return in get*_r [BZ #21932] X-Git-Tag: glibc-2.27~1200 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3016149819268b14660f791b971910ccc2cc13e5;p=thirdparty%2Fglibc.git nss: Call __resolv_context_put before early return in get*_r [BZ #21932] This corrects an oversight introduced in commit 352f4ff9a268b81ef5d4b2413f582565806e4790 (resolv: Introduce struct resolv_context). --- diff --git a/ChangeLog b/ChangeLog index f0c5eba5186..3c205310e1d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2017-08-09 Florian Weimer + + [BZ #21932] + * nss/getXXbyYY_r.c (REENTRANT_NAME): Call __resolv_context_put + before early return. + 2017-08-09 Andreas Schwab [BZ #21041] diff --git a/nss/getXXbyYY_r.c b/nss/getXXbyYY_r.c index 6c547ea1ca6..bce80e05dd2 100644 --- a/nss/getXXbyYY_r.c +++ b/nss/getXXbyYY_r.c @@ -234,6 +234,9 @@ INTERNAL (REENTRANT_NAME) (ADD_PARAMS, LOOKUP_TYPE *resbuf, char *buffer, H_ERRNO_VAR_P)) { case -1: +# ifdef NEED__RES + __resolv_context_put (res_ctx); +# endif return errno; case 1: #ifdef NEED_H_ERRNO @@ -253,7 +256,12 @@ INTERNAL (REENTRANT_NAME) (ADD_PARAMS, LOOKUP_TYPE *resbuf, char *buffer, nscd_status = NSCD_NAME (ADD_VARIABLES, resbuf, buffer, buflen, result H_ERRNO_VAR); if (nscd_status >= 0) - return nscd_status; + { +# ifdef NEED__RES + __resolv_context_put (res_ctx); +# endif + return nscd_status; + } } #endif