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