diff --git a/ChangeLog b/ChangeLog index e24281bfba..be8a1f08c5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,8 +1,10 @@ 2006-08-03 Ulrich Drepper + * grp/initgroups.c (internal_getgrouplist): Remove unnecessary test introduced in patch for bz #661. - (getgrouplist): Simplify code a bit. + (getgrouplist): Simplify code a bit. Don't allocate one additional + element on NEWGROUPS. [BZ #2908] * stdio-common/printf_fphex.c (__printf_fphex): When rounding up diff --git a/grp/initgroups.c b/grp/initgroups.c index 1cc07b6bef..883ea71680 100644 --- a/grp/initgroups.c +++ b/grp/initgroups.c @@ -144,7 +144,7 @@ getgrouplist (const char *user, gid_t group, gid_t *groups, int *ngroups) { long int size = MAX (1, *ngroups); - gid_t *newgroups = (gid_t *) malloc ((size + 1) * sizeof (gid_t)); + gid_t *newgroups = (gid_t *) malloc (size * sizeof (gid_t)); if (__builtin_expect (newgroups == NULL, 0)) /* No more memory. */ // XXX This is wrong. The user provided memory, we have to use