svn commit: r201952 - projects/ngroups/sys/rpc/rpcsec_gss
Brooks Davis
brooks at FreeBSD.org
Sat Jan 9 23:19:39 UTC 2010
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))
More information about the svn-src-projects
mailing list