aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@gmail.com>2011-06-21 17:09:44 -0400
committerUlrich Drepper <drepper@gmail.com>2011-06-21 17:09:44 -0400
commit51f9aa6a1ed763cb133fff2efddfbf564a82a528 (patch)
treec89383f9bfcf26d68204ce982d70fde93d695d65
parentc0244a9dedce43a4b950d91451b16a7cf5408476 (diff)
downloadglibc-51f9aa6a1ed763cb133fff2efddfbf564a82a528.zip
glibc-51f9aa6a1ed763cb133fff2efddfbf564a82a528.tar.gz
glibc-51f9aa6a1ed763cb133fff2efddfbf564a82a528.tar.bz2
Fix crash in unsuccessful uses of nss_db
-rw-r--r--ChangeLog3
-rw-r--r--nss/nss_db/db-XXX.c11
2 files changed, 10 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index abc4894..5dc235e 100644
--- 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.
diff --git a/nss/nss_db/db-XXX.c b/nss/nss_db/db-XXX.c
index 3947893..0600e38 100644
--- a/nss/nss_db/db-XXX.c
+++ b/nss/nss_db/db-XXX.c
@@ -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);