svn commit: r193519 - projects/ngroups/sys/fs/portalfs
Brooks Davis
brooks at FreeBSD.org
Fri Jun 5 16:45:58 UTC 2009
Author: brooks
Date: Fri Jun 5 16:45:58 2009
New Revision: 193519
URL: http://svn.freebsd.org/changeset/base/193519
Log:
Clamp the number of groups in the portal credential to XU_NGROUPS (16).
This should be modified along with userspace to be dynamic.
Modified:
projects/ngroups/sys/fs/portalfs/portal.h
projects/ngroups/sys/fs/portalfs/portal_vnops.c
Modified: projects/ngroups/sys/fs/portalfs/portal.h
==============================================================================
--- projects/ngroups/sys/fs/portalfs/portal.h Fri Jun 5 16:44:42 2009 (r193518)
+++ projects/ngroups/sys/fs/portalfs/portal.h Fri Jun 5 16:45:58 2009 (r193519)
@@ -43,7 +43,7 @@ struct portal_cred {
int pcr_flag; /* File open mode */
uid_t pcr_uid; /* From ucred */
short pcr_ngroups; /* From ucred */
- gid_t pcr_groups[NGROUPS]; /* From ucred */
+ gid_t pcr_groups[XU_NGROUPS]; /* From ucred */
};
#ifdef _KERNEL
Modified: projects/ngroups/sys/fs/portalfs/portal_vnops.c
==============================================================================
--- projects/ngroups/sys/fs/portalfs/portal_vnops.c Fri Jun 5 16:44:42 2009 (r193518)
+++ projects/ngroups/sys/fs/portalfs/portal_vnops.c Fri Jun 5 16:45:58 2009 (r193519)
@@ -311,8 +311,9 @@ portal_open(ap)
pcred.pcr_flag = ap->a_mode;
pcred.pcr_uid = ap->a_cred->cr_uid;
- pcred.pcr_ngroups = ap->a_cred->cr_ngroups;
- bcopy(ap->a_cred->cr_groups, pcred.pcr_groups, NGROUPS * sizeof(gid_t));
+ pcred.pcr_ngroups = MIN(ap->a_cred->cr_ngroups, XU_NGROUPS);
+ bcopy(ap->a_cred->cr_groups, pcred.pcr_groups,
+ pcred.pcr_ngroups * sizeof(gid_t));
aiov[0].iov_base = (caddr_t) &pcred;
aiov[0].iov_len = sizeof(pcred);
aiov[1].iov_base = pt->pt_arg;
More information about the svn-src-projects
mailing list