Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 9 Jan 2010 23:19:38 +0000 (UTC)
From:      Brooks Davis <brooks@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r201952 - projects/ngroups/sys/rpc/rpcsec_gss
Message-ID:  <201001092319.o09NJchS045836@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: brooks
Date: Sat Jan  9 23:19:38 2010
New Revision: 201952
URL: http://svn.freebsd.org/changeset/base/201952

Log:
  Follow HEAD here and just limit the groups to 16 since this is RPC.

Modified:
  projects/ngroups/sys/rpc/rpcsec_gss/svc_rpcsec_gss.c

Modified: projects/ngroups/sys/rpc/rpcsec_gss/svc_rpcsec_gss.c
==============================================================================
--- projects/ngroups/sys/rpc/rpcsec_gss/svc_rpcsec_gss.c	Sat Jan  9 23:19:01 2010	(r201951)
+++ projects/ngroups/sys/rpc/rpcsec_gss/svc_rpcsec_gss.c	Sat Jan  9 23:19:38 2010	(r201952)
@@ -121,6 +121,9 @@ enum svc_rpc_gss_client_state {
 };
 
 #define SVC_RPC_GSS_SEQWINDOW	128
+#ifndef RPCAUTH_UNIXGIDS
+#define RPCAUTH_UNIXGIDS	16
+#endif
 
 struct svc_rpc_gss_clientid {
 	unsigned long		ci_hostid;
@@ -147,7 +150,7 @@ struct svc_rpc_gss_client {
 	int			cl_rpcflavor;	/* RPC pseudo sec flavor */
 	bool_t			cl_done_callback; /* TRUE after call */
 	void			*cl_cookie;	/* user cookie from callback */
-	gid_t			*cl_gid_storage;
+	gid_t			cl_gid_storage[RPCAUTH_UNIXGIDS];
 	gss_OID			cl_mech;	/* mechanism */
 	gss_qop_t		cl_qop;		/* quality of protection */
 	uint32_t		cl_seqlast;	/* sequence window origin */
@@ -543,7 +546,6 @@ svc_rpc_gss_create_client(void)
 
 	client = mem_alloc(sizeof(struct svc_rpc_gss_client));
 	memset(client, 0, sizeof(struct svc_rpc_gss_client));
-	client->cl_gid_storage = mem_alloc((ngroups_max + 1) * sizeof(gid_t));
 	refcount_init(&client->cl_refs, 1);
 	sx_init(&client->cl_lock, "GSS-client");
 	getcredhostid(curthread->td_ucred, &hostid);
@@ -591,8 +593,6 @@ svc_rpc_gss_destroy_client(struct svc_rp
 		crfree(client->cl_cred);
 
 	sx_destroy(&client->cl_lock);
-	mem_free(client->cl_gid_storage,
-	    (ngroups_max + 1) * sizeof(gid_t));
 	mem_free(client, sizeof(*client));
 }
 
@@ -738,7 +738,7 @@ svc_rpc_gss_build_ucred(struct svc_rpc_g
 	uc->gid = 65534;
 	uc->gidlist = client->cl_gid_storage;
 
-	numgroups = ngroups_max + 1;
+	numgroups = RPCAUTH_UNIXGIDS;
 	maj_stat = gss_pname_to_unix_cred(&min_stat, name, client->cl_mech,
 	    &uc->uid, &uc->gid, &numgroups, &uc->gidlist[0]);
 	if (GSS_ERROR(maj_stat))



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