Re: PATCH: report NGROUPS_MAX via a sysctl (read-only)

Tim Hockin
2004-02-20T06:35:45Z

On Thu, Feb 19, 2004 at 09:30:28PM -0800, Andrew Morton wrote:
> > Attached is a simple patch to expose NGROUPS_MAX via sysctl.
>
> Why does userspace actually care? You try to do an oversized setgroups(),
> so you get an error?

I am systematically tracking down apps that use it. glibc is almost free of
it. sysconf() still uses it, but as long as the value compiled into glibc
as NGROUPS_MAX is less-than-or-equal-to the current kernel's idea, it meets
POSIX, right? If any one goes into their kernel source and lowers
NGROUPS_MAX they might break things, but I guess that isn't too big of a
worry. Some apps are still assuming that the value they get from sysconf()
is the absolute max number of groups. Anyone with libc compiled against an
older kernel will see 32, when they could have 64k.

> And why does NGROUPS_MAX still exist, come to that? AFAICT the only thing

Because Linus would not let me set it to INT_MAX. Something about
"insanity" ;)

As long as we can convince userspace apps to not trust sysconf() or
NGROUPS_MAX constants, I guess we don't *need* it exposed. I guess that's a
veto, then?

--
Tim Hockin
Sun Microsystems, Linux Software Engineering
thockin@sun.com
All opinions are my own, not Sun's