]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Fix crash in unsuccessful uses of nss_db
authorUlrich Drepper <drepper@gmail.com>
Tue, 21 Jun 2011 21:09:44 +0000 (17:09 -0400)
committerUlrich Drepper <drepper@gmail.com>
Tue, 21 Jun 2011 21:09:44 +0000 (17:09 -0400)
ChangeLog
nss/nss_db/db-XXX.c

index abc4894493cd7428ea2d1a3f0fbf3a4bb2e19d7c..5dc235e6c42d7785e8d6095bac0766d656c309f8 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2011-06-21  Ulrich Drepper  <drepper@gmail.com>
 
+       * nss/nss_db/db-XXX.c (nss_db_setENT): Only set entidx for successful
+       calls to internal_setent.
+
        [BZ #12885]
        * sysdeps/posix/getaddrinfo.c (gaih_inet): When looking up only IPv6
        addresses using gethostbyname4_r ignore IPv4 addresses.
index 3947893284f352e3cb4767b5ca29f15eec2de7d3..0600e38b6fce71649ee6f0b5d6c41e5060241dd4 100644 (file)
@@ -71,11 +71,14 @@ CONCAT(_nss_db_set,ENTNAME) (int stayopen)
 
   status = internal_setent (DBFILE, &state);
 
-  /* Remember STAYOPEN flag.  */
   if (status == NSS_STATUS_SUCCESS)
-    keep_db |= stayopen;
-  /* Reset the sequential index.  */
-  entidx  = (const char *) state.header + state.header->valstroffset;
+    {
+      /* Remember STAYOPEN flag.  */
+      keep_db |= stayopen;
+
+      /* Reset the sequential index.  */
+      entidx  = (const char *) state.header + state.header->valstroffset;
+    }
 
   __libc_lock_unlock (lock);