From: Ulrich Drepper Date: Tue, 21 Jun 2011 21:09:44 +0000 (-0400) Subject: Fix crash in unsuccessful uses of nss_db X-Git-Tag: glibc-2.15~520 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=51f9aa6a1ed763cb133fff2efddfbf564a82a528;p=thirdparty%2Fglibc.git Fix crash in unsuccessful uses of nss_db --- diff --git a/ChangeLog b/ChangeLog index abc4894493c..5dc235e6c42 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2011-06-21 Ulrich Drepper + * 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 3947893284f..0600e38b6fc 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);