1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-08-01 10:06:57 +03:00
2004-03-30  Ulrich Drepper  <drepper@redhat.com>

	* nis/nss_nis/nis-initgroups.c: Implement getting the information
	from the netid.byname map if the system administrator allows this.

	* grp/initgroups.c (initgroups): Limit the initial allocation to 64
	entries to not allocate too much on systems with really high limits.
This commit is contained in:
Ulrich Drepper
2004-03-30 18:23:15 +00:00
parent 3b0b6c369f
commit ff0913d3a3
3 changed files with 217 additions and 13 deletions

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1989,91,93,1996-2002, 2003 Free Software Foundation, Inc.
/* Copyright (C) 1989,91,93,1996-2003, 2004 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -249,12 +249,11 @@ initgroups (const char *user, gid_t group)
long int limit = __sysconf (_SC_NGROUPS_MAX);
if (limit > 0)
size = limit;
/* We limit the size of the intially allocated array. */
size = MIN (limit, 64);
else
{
/* No fixed limit on groups. Pick a starting buffer size. */
size = 16;
}
/* No fixed limit on groups. Pick a starting buffer size. */
size = 16;
groups = (gid_t *) malloc (size * sizeof (gid_t));
if (__builtin_expect (groups == NULL, 0))