Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 27 Sep 2007 13:09:00 +0200
From:      Pawel Jakub Dawidek <pjd@FreeBSD.org>
To:        "rsync.net" <info@rsync.net>
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: kern.ngroups (non) setting ... new bounty ?
Message-ID:  <20070927110900.GD1193@garage.freebsd.pl>
In-Reply-To: <20070925093722.N21960@mail.rsync.net>
References:  <20070925093722.N21960@mail.rsync.net>

next in thread | previous in thread | raw e-mail | index | archive | help

--mR8QP4gmHujQHb1c
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Tue, Sep 25, 2007 at 09:51:06AM -0700, rsync.net wrote:
>=20
> It has been impossible to change kern.ngroups - at least for several years
> now.  It was not fixed in either 5.x or 6.x :
>=20
> http://lists.freebsd.org/pipermail/freebsd-bugs/2007-January/022140.html
>=20
> It is seemingly a difficult problem:
>=20
> http://www.atm.tut.fi/list-archive/freebsd-stable/msg09969.html   [1]
>=20
> However it should be solved - we can't be the only ones out there trying
> to add a UID to more than 16 groups...
>=20
>=20
> -----
>=20
>=20
> The rsync.net code bounties have been fairly successful this year - two of
> the five projects have been completed, and the large "vmware 6 on FreeBSD"
> project is now underway.
>=20
> We'd like to add a new bounty for this kern.ngroups issue.  We are posting
> to -hackers today to get some feedback on how long this will take and how
> much money might reasonably be expected to lure this work.
>=20
>=20
> --rsync.net Support
>=20
>=20
>=20
> [1]  Is it indeed true that these programs are broken by not following
>      NGROUPS_MAX from syslimits.h?

I don't see how they can be broken. They may not see more than 16
groups, but they shouldn't blow up. The only possibility of bad usage I
see is something like this:

	gid_t gids[NGROUPS_MAX];
	int gidsetlen;

	gidsetlen =3D getgroups(0, NULL);
	getgroups(gidsetlen, gids);

But I guess the most common use is:

	gid_t gids[NGROUPS_MAX];
	int gidsetlen;

	gidsetlen =3D getgroups(NGROUPS_MAX, gids);

Binaries using the latter method should be just fine.
BTW. The latter method is what all utilities from the base system use.

--=20
Pawel Jakub Dawidek                       http://www.wheel.pl
pjd@FreeBSD.org                           http://www.FreeBSD.org
FreeBSD committer                         Am I Evil? Yes, I Am!

--mR8QP4gmHujQHb1c
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.4 (FreeBSD)

iD8DBQFG+49MForvXbEpPzQRArKLAJwMvA85vNuEiUlKkFDO2qmbPkrvIgCfQiO2
LMGAyT+FfATQk1YIbG9Jy/w=
=j8gH
-----END PGP SIGNATURE-----

--mR8QP4gmHujQHb1c--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070927110900.GD1193>