1998-08-10  Ulrich Drepper  <drepper@cygnus.com>

	* nss/nss_db/db-XXX.c (_nss_db_getXXX): If buffer is too small
	decrement `entidx' to allow retrieving the same entry again.
This commit is contained in:
Ulrich Drepper 1998-08-10 00:16:35 +00:00
parent cdb47f096a
commit 0e94359046
2 changed files with 13 additions and 0 deletions

View File

@ -1,3 +1,8 @@
1998-08-10 Ulrich Drepper <drepper@cygnus.com>
* nss/nss_db/db-XXX.c (_nss_db_getXXX): If buffer is too small
decrement `entidx' to allow retrieving the same entry again.
1998-08-09 22:32 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/powerpc/ffs.c: Fix typo. Add support for ffsl.

View File

@ -282,6 +282,14 @@ CONCAT(_nss_db_get,ENTNAME_r) (struct STRUCTURE *result, char *buffer,
{
key.size = snprintf (key.data = buf, sizeof buf, "0%u", entidx++);
status = lookup (&key, result, buffer, buflen, errnop H_ERRNO_ARG);
if (status == NSS_STATUS_TRYAGAIN
#ifdef NEED_H_ERRNO
&& *herrnop == NETDB_INTERNAL
#endif
&& *errnop == ERANGE)
/* Give the user a chance to get the same entry with a larger
buffer. */
--entidx;
}
while (status == NSS_STATUS_RETURN);