]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
nss: Call __resolv_context_put before early return in get*_r [BZ #21932]
authorFlorian Weimer <fweimer@redhat.com>
Wed, 9 Aug 2017 15:46:04 +0000 (17:46 +0200)
committerFlorian Weimer <fweimer@redhat.com>
Wed, 9 Aug 2017 15:47:11 +0000 (17:47 +0200)
This corrects an oversight introduced in commit
352f4ff9a268b81ef5d4b2413f582565806e4790 (resolv: Introduce struct
resolv_context).

ChangeLog
nss/getXXbyYY_r.c

index f0c5eba5186a43b7bca28f8d88d4e6dba246ea38..3c205310e1d1f5e6287befd73a9368aaf2ea324f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2017-08-09  Florian Weimer  <fweimer@redhat.com>
+
+       [BZ #21932]
+       * nss/getXXbyYY_r.c (REENTRANT_NAME): Call __resolv_context_put
+       before early return.
+
 2017-08-09  Andreas Schwab  <schwab@suse.de>
 
        [BZ #21041]
index 6c547ea1ca6646c9b543fe1940da6514506570ce..bce80e05dd2d176467809faf353828f50cf76eaf 100644 (file)
@@ -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