Fix crash in unsuccessful uses of nss_db

This commit is contained in:
Ulrich Drepper 2011-06-21 17:09:44 -04:00
parent c0244a9ded
commit 51f9aa6a1e
2 changed files with 10 additions and 4 deletions

View File

@ -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.

View 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);