2004-08-19  Ulrich Drepper  <drepper@redhat.com>

	* nis/nss_compat/compat-initgroups.c (getgrent_next_nss):
	Initialize mysize with limits only if latter is >= 0.  Use mysize
	in malloc call.
This commit is contained in:
Ulrich Drepper 2004-08-19 21:03:12 +00:00
parent 10b71c3d31
commit 8583671dd4
2 changed files with 9 additions and 3 deletions

View File

@ -1,3 +1,9 @@
2004-08-19 Ulrich Drepper <drepper@redhat.com>
* nis/nss_compat/compat-initgroups.c (getgrent_next_nss):
Initialize mysize with limits only if latter is >= 0. Use mysize
in malloc call.
2004-08-19 Jakub Jelinek <jakub@redhat.com> 2004-08-19 Jakub Jelinek <jakub@redhat.com>
* sysdeps/posix/getaddrinfo.c (gaih_inet): Cast canon to (char *) * sysdeps/posix/getaddrinfo.c (gaih_inet): Cast canon to (char *)

View File

@ -242,8 +242,8 @@ getgrent_next_nss (ent_t *ent, char *buffer, size_t buflen, const char *user,
if (nss_initgroups_dyn && nss_getgrgid_r) if (nss_initgroups_dyn && nss_getgrgid_r)
{ {
long int mystart = 0; long int mystart = 0;
long int mysize = limit; long int mysize = limit <= 0 ? *size : limit;
gid_t *mygroupsp = malloc (limit * sizeof (gid_t)); gid_t *mygroupsp = malloc (mysize * sizeof (gid_t));
if (mygroupsp == NULL) if (mygroupsp == NULL)
return NSS_STATUS_TRYAGAIN; return NSS_STATUS_TRYAGAIN;
@ -258,7 +258,7 @@ getgrent_next_nss (ent_t *ent, char *buffer, size_t buflen, const char *user,
if (nss_initgroups_dyn (user, group, &mystart, &mysize, &mygroupsp, if (nss_initgroups_dyn (user, group, &mystart, &mysize, &mygroupsp,
limit, errnop) == NSS_STATUS_SUCCESS) limit, errnop) == NSS_STATUS_SUCCESS)
{ {
/* A temporary buffer. We use the normal buffer, until we found /* A temporary buffer. We use the normal buffer, until we find
an entry, for which this buffer is to small. In this case, we an entry, for which this buffer is to small. In this case, we
overwrite the pointer with one to a bigger buffer. */ overwrite the pointer with one to a bigger buffer. */
char *tmpbuf = buffer; char *tmpbuf = buffer;