diff options
author | Ulrich Drepper <drepper@gmail.com> | 2011-06-21 17:09:44 -0400 |
---|---|---|
committer | Ulrich Drepper <drepper@gmail.com> | 2011-06-21 17:09:44 -0400 |
commit | 51f9aa6a1ed763cb133fff2efddfbf564a82a528 (patch) | |
tree | c89383f9bfcf26d68204ce982d70fde93d695d65 | |
parent | c0244a9dedce43a4b950d91451b16a7cf5408476 (diff) | |
download | glibc-51f9aa6a1ed763cb133fff2efddfbf564a82a528.zip glibc-51f9aa6a1ed763cb133fff2efddfbf564a82a528.tar.gz glibc-51f9aa6a1ed763cb133fff2efddfbf564a82a528.tar.bz2 |
Fix crash in unsuccessful uses of nss_db
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | nss/nss_db/db-XXX.c | 11 |
2 files changed, 10 insertions, 4 deletions
@@ -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); |