freebsd-dev/lib
Brooks Davis 838d985825 Rework the credential code to support larger values of NGROUPS and
NGROUPS_MAX, eliminate ABI dependencies on them, and raise the to 1024
and 1023 respectively.  (Previously they were equal, but under a close
reading of POSIX, NGROUPS_MAX was defined to be too large by 1 since it
is the number of supplemental groups, not total number of groups.)

The bulk of the change consists of converting the struct ucred member
cr_groups from a static array to a pointer.  Do the equivalent in
kinfo_proc.

Introduce new interfaces crcopysafe() and crsetgroups() for duplicating
a process credential before modifying it and for setting group lists
respectively.  Both interfaces take care for the details of allocating
groups array. crsetgroups() takes care of truncating the group list
to the current maximum (NGROUPS) if necessary.  In the future,
crsetgroups() may be responsible for insuring invariants such as sorting
the supplemental groups to allow groupmember() to be implemented as a
binary search.

Because we can not change struct xucred without breaking application
ABIs, we leave it alone and introduce a new XU_NGROUPS value which is
always 16 and is to be used or NGRPS as appropriate for things such as
NFS which need to use no more than 16 groups.  When feasible, truncate
the group list rather than generating an error.

Minor changes:
  - Reduce the number of hand rolled versions of groupmember().
  - Do not assign to both cr_gid and cr_groups[0].
  - Modify ipfw to cache ucreds instead of part of their contents since
    they are immutable once referenced by more than one entity.

Submitted by:	Isilon Systems (initial implementation)
X-MFC after:	never
PR:		bin/113398 kern/133867
2009-06-19 17:10:35 +00:00
..
bind Add support for the build options that are currently in the port: 2009-06-01 21:58:59 +00:00
csu Fix build when WITH_SSP is set explicitly. 2009-02-21 15:04:31 +00:00
libalias -Don't pass down the entire pkt to ProtoAliasIn, ProtoAliasOut, FragmentIn 2008-03-12 11:58:29 +00:00
libarchive Include libmd and libcrypto in DPADD 2009-05-30 17:26:55 +00:00
libauditd Merge OpenBSM alpha 4 from OpenBSM vendor branch to head, both 2008-12-31 11:12:24 +00:00
libautofs
libbegemot
libbluetooth Avoid floating point arithmetic while calculating iquiry length. 2009-05-14 17:10:19 +00:00
libbsm Merge OpenBSM 1.1 from OpenBSM vendor branch to head. 2009-04-19 16:17:13 +00:00
libbsnmp
libbz2
libc Rework the credential code to support larger values of NGROUPS and 2009-06-19 17:10:35 +00:00
libc_r Use, in uncovered part, the END() macro in order to improve debugging. 2009-05-25 14:37:10 +00:00
libcalendar
libcam Supply a valid Connect ID when issuing XPT_DEV_MATCH, which 2008-10-27 21:46:58 +00:00
libcom_err
libcompat Add a missing parameter to ruserpass(). According to C99 6.9.1p7 2009-02-26 17:46:54 +00:00
libcrypt
libdevinfo
libdevstat The devstat(3) manpage claims that only <devstat.h> is needed as a 2008-01-31 16:55:12 +00:00
libdisk - Allow a higher value for the number of heads. Its better to do this and allow 2009-06-17 06:47:05 +00:00
libdwarf Add a BSD licensed DWARF library for use by the DTrace clients. 2008-05-22 02:14:23 +00:00
libedit
libelf Don't need to set symbol, default value is OK. 2009-03-12 04:44:09 +00:00
libexpat Update the lib/expat tree for the new v2.0.1 expat import. The bsdxml.h 2008-05-08 14:01:42 +00:00
libfetch 1. Update fetch to consistently return 1 on error, as the man page states, 2008-12-17 18:00:18 +00:00
libftpio Don't set the _file member of the FILE when opening a FTP connection. 2008-05-08 20:05:30 +00:00
libgeom Add links to libgeom(3) where appropriate. 2009-05-19 12:10:48 +00:00
libgpib
libgssapi Add an implementation of the RPCSEC_GSS authentication protocol for RPC. This 2008-08-06 14:02:05 +00:00
libipsec
libipx
libkiconv
libkse Honor WITHOUT_INSTALLLIB in some places. 2009-02-13 16:51:36 +00:00
libkvm Rework the credential code to support larger values of NGROUPS and 2009-06-19 17:10:35 +00:00
libmagic Merge vendor/file/dist@191739, bringing FILE 5.00 to 8-CURRENT. 2009-05-04 00:37:44 +00:00
libmd Remove reference to no longer existing document. 2009-01-09 11:45:13 +00:00
libmemstat Update the KVM backend for malloc stats to catch up to the internal structure 2009-05-15 18:25:44 +00:00
libmilter Switch libmilter from select(2) to poll(2) so milters are not limited 2008-02-17 05:14:47 +00:00
libmp Rename all symbols in libmp(3) to mp_*, just like Solaris. 2009-02-26 21:43:15 +00:00
libncp
libnetgraph
libngatm
libopie
libpam Include <stdio.h> for asprintf(). 2009-06-14 12:45:48 +00:00
libpcap Fix typo in comment. 2009-03-22 01:24:32 +00:00
libpmc Document the fact that some Core2 family CPUs lack fixed-function counters. 2009-06-09 06:36:29 +00:00
libproc Merge latest DTrace changes from Perforce. 2008-11-05 19:35:43 +00:00
libradius
librpcsec_gss Implement support for RPCSEC_GSS authentication to both the NFS client 2008-11-03 10:38:00 +00:00
librpcsvc Use ANSI function declarations in librpcsvc. 2009-02-26 20:32:11 +00:00
librt atomic_fetchadd_int works on unsigned quantities - change 2008-08-15 21:08:48 +00:00
libsbuf
libsdp Add mandatory "security description" SDP parameter to the PANU profile 2008-03-19 00:06:30 +00:00
libsm
libsmb
libsmdb
libsmutil
libstand Fix minor issues in libstand. 2009-05-31 21:29:07 +00:00
libtacplus
libtelnet Rename all symbols in libmp(3) to mp_*, just like Solaris. 2009-02-26 21:43:15 +00:00
libthr These are some cosmetic changes to improve the clarity of libthr's fork implementation. 2009-05-11 16:45:53 +00:00
libthread_db Revert r181651, which changed the ABI, and use a temp variable instead. 2009-06-09 12:32:10 +00:00
libufs Allow libufs(3) functions to operate on a regular file. This makes it possible to 2009-06-11 18:04:57 +00:00
libugidfw
libusb Cleanup claim/release interface code, which is specific to libusb v0.1. Remove 2009-06-12 16:07:06 +00:00
libusbhid Fix missed change from usb2_gen_descriptor to usb_gen_descriptor 2009-05-28 20:21:01 +00:00
libutil Note that the structures are defined in <sys/user.h> in the text (using 2009-06-15 15:43:00 +00:00
libvgl
libwrap
liby
libypclnt
libz
msun Use the documented machine constraint for SSE registers. 2009-06-11 13:59:51 +00:00
ncurses - Update ncurses to 5.7-20081102 (5.7 release) and build glue 2008-11-15 09:23:48 +00:00
Makefile Commit missed file in r189587, update directory name for libusb. 2009-03-09 17:38:14 +00:00
Makefile.inc