mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-10 07:10:06 +00:00
Update.
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:
parent
10b71c3d31
commit
8583671dd4
@ -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 *)
|
||||||
|
@ -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;
|
||||||
|
Loading…
Reference in New Issue
Block a user