diff options
Diffstat (limited to 'net/sunrpc/svcauth_unix.c')
| -rw-r--r-- | net/sunrpc/svcauth_unix.c | 6 | 
1 files changed, 4 insertions, 2 deletions
| diff --git a/net/sunrpc/svcauth_unix.c b/net/sunrpc/svcauth_unix.c index f81eaa8e0888..af7f28fb8102 100644 --- a/net/sunrpc/svcauth_unix.c +++ b/net/sunrpc/svcauth_unix.c @@ -520,6 +520,7 @@ static int unix_gid_parse(struct cache_detail *cd,  		ug.gi->gid[i] = kgid;  	} +	groups_sort(ug.gi);  	ugp = unix_gid_lookup(cd, uid);  	if (ugp) {  		struct cache_head *ch; @@ -569,7 +570,7 @@ static int unix_gid_show(struct seq_file *m,  	return 0;  } -static struct cache_detail unix_gid_cache_template = { +static const struct cache_detail unix_gid_cache_template = {  	.owner		= THIS_MODULE,  	.hash_size	= GID_HASHMAX,  	.name		= "auth.unix.gid", @@ -819,6 +820,7 @@ svcauth_unix_accept(struct svc_rqst *rqstp, __be32 *authp)  		kgid_t kgid = make_kgid(&init_user_ns, svc_getnl(argv));  		cred->cr_group_info->gid[i] = kgid;  	} +	groups_sort(cred->cr_group_info);  	if (svc_getu32(argv) != htonl(RPC_AUTH_NULL) || svc_getu32(argv) != 0) {  		*authp = rpc_autherr_badverf;  		return SVC_DENIED; @@ -862,7 +864,7 @@ struct auth_ops svcauth_unix = {  	.set_client	= svcauth_unix_set_client,  }; -static struct cache_detail ip_map_cache_template = { +static const struct cache_detail ip_map_cache_template = {  	.owner		= THIS_MODULE,  	.hash_size	= IP_HASHMAX,  	.name		= "auth.unix.ip", | 

