* grp/initgroups.c (initgroups) [NGROUPS_MAX != 0]: Always use sysconf

instead of the constant NGROUPS_MAX.  That way, the limit can be
	raised in the kernel configuration without having to recompile libc.

	* sysdeps/posix/euidaccess.c: Don't #include <limits.h> or try to
	define NGROUPS_MAX; we don't use it here.
This commit is contained in:
Roland McGrath 2001-04-17 03:34:20 +00:00
parent cb21f24212
commit 3de33da93f
2 changed files with 18 additions and 9 deletions

View File

@ -1,3 +1,12 @@
2001-04-16 Roland McGrath <roland@frob.com>
* grp/initgroups.c (initgroups) [NGROUPS_MAX != 0]: Always use sysconf
instead of the constant NGROUPS_MAX. That way, the limit can be
raised in the kernel configuration without having to recompile libc.
* sysdeps/posix/euidaccess.c: Don't #include <limits.h> or try to
define NGROUPS_MAX; we don't use it here.
2001-04-16 Andreas Jaeger <aj@suse.de>
* math/libm-test.inc (atan2_test): Add more testcases.

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1989, 91, 93, 1996-1999, 2000 Free Software Foundation, Inc.
/* Copyright (C) 1989,91,93,1996-1999,2000,01 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
@ -158,21 +158,21 @@ initgroups (user, group)
/* Start is one, because we have the first group as parameter. */
long int start = 1;
long int size;
long int limit;
gid_t *groups;
int result;
#ifdef NGROUPS_MAX
size = NGROUPS_MAX;
limit = -1;
#else
/* We always use sysconf even if NGROUPS_MAX is defined. That way, the
limit can be raised in the kernel configuration without having to
recompile libc. */
long int limit = __sysconf (_SC_NGROUPS_MAX);
if (limit > 0)
size = limit;
else
/* No fixed limit on groups. Pick a starting buffer size. */
size = 16;
#endif
{
/* 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))