mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-07 13:43:51 +00:00
sunrpc: rename NFS_NGROUPS to UNX_NGROUPS for auth unix
NFS_NGROUPS has been move to sunrpc, rename to UNX_NGROUPS. Signed-off-by: Kinglong Mee <kinglongmee@gmail.com> Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
This commit is contained in:
parent
863d7d9c2e
commit
5786461bd8
@ -32,6 +32,7 @@
|
||||
*/
|
||||
#define UNX_MAXNODENAME __NEW_UTS_LEN
|
||||
#define UNX_CALLSLACK (21 + XDR_QUADLEN(UNX_MAXNODENAME))
|
||||
#define UNX_NGROUPS 16
|
||||
|
||||
struct rpcsec_gss_info;
|
||||
|
||||
|
@ -14,12 +14,10 @@
|
||||
#include <linux/sunrpc/auth.h>
|
||||
#include <linux/user_namespace.h>
|
||||
|
||||
#define NFS_NGROUPS 16
|
||||
|
||||
struct unx_cred {
|
||||
struct rpc_cred uc_base;
|
||||
kgid_t uc_gid;
|
||||
kgid_t uc_gids[NFS_NGROUPS];
|
||||
kgid_t uc_gids[UNX_NGROUPS];
|
||||
};
|
||||
#define uc_uid uc_base.cr_uid
|
||||
|
||||
@ -82,13 +80,13 @@ unx_create_cred(struct rpc_auth *auth, struct auth_cred *acred, int flags, gfp_t
|
||||
|
||||
if (acred->group_info != NULL)
|
||||
groups = acred->group_info->ngroups;
|
||||
if (groups > NFS_NGROUPS)
|
||||
groups = NFS_NGROUPS;
|
||||
if (groups > UNX_NGROUPS)
|
||||
groups = UNX_NGROUPS;
|
||||
|
||||
cred->uc_gid = acred->gid;
|
||||
for (i = 0; i < groups; i++)
|
||||
cred->uc_gids[i] = acred->group_info->gid[i];
|
||||
if (i < NFS_NGROUPS)
|
||||
if (i < UNX_NGROUPS)
|
||||
cred->uc_gids[i] = INVALID_GID;
|
||||
|
||||
return &cred->uc_base;
|
||||
@ -132,12 +130,12 @@ unx_match(struct auth_cred *acred, struct rpc_cred *rcred, int flags)
|
||||
|
||||
if (acred->group_info != NULL)
|
||||
groups = acred->group_info->ngroups;
|
||||
if (groups > NFS_NGROUPS)
|
||||
groups = NFS_NGROUPS;
|
||||
if (groups > UNX_NGROUPS)
|
||||
groups = UNX_NGROUPS;
|
||||
for (i = 0; i < groups ; i++)
|
||||
if (!gid_eq(cred->uc_gids[i], acred->group_info->gid[i]))
|
||||
return 0;
|
||||
if (groups < NFS_NGROUPS && gid_valid(cred->uc_gids[groups]))
|
||||
if (groups < UNX_NGROUPS && gid_valid(cred->uc_gids[groups]))
|
||||
return 0;
|
||||
return 1;
|
||||
}
|
||||
@ -166,7 +164,7 @@ unx_marshal(struct rpc_task *task, __be32 *p)
|
||||
*p++ = htonl((u32) from_kuid(&init_user_ns, cred->uc_uid));
|
||||
*p++ = htonl((u32) from_kgid(&init_user_ns, cred->uc_gid));
|
||||
hold = p++;
|
||||
for (i = 0; i < 16 && gid_valid(cred->uc_gids[i]); i++)
|
||||
for (i = 0; i < UNX_NGROUPS && gid_valid(cred->uc_gids[i]); i++)
|
||||
*p++ = htonl((u32) from_kgid(&init_user_ns, cred->uc_gids[i]));
|
||||
*hold = htonl(p - hold - 1); /* gid array length */
|
||||
*base = htonl((p - base - 1) << 2); /* cred length */
|
||||
|
@ -403,7 +403,7 @@ svcauth_unix_info_release(struct svc_xprt *xpt)
|
||||
/****************************************************************************
|
||||
* auth.unix.gid cache
|
||||
* simple cache to map a UID to a list of GIDs
|
||||
* because AUTH_UNIX aka AUTH_SYS has a max of 16
|
||||
* because AUTH_UNIX aka AUTH_SYS has a max of UNX_NGROUPS
|
||||
*/
|
||||
#define GID_HASHBITS 8
|
||||
#define GID_HASHMAX (1<<GID_HASHBITS)
|
||||
@ -810,7 +810,7 @@ svcauth_unix_accept(struct svc_rqst *rqstp, __be32 *authp)
|
||||
cred->cr_uid = make_kuid(&init_user_ns, svc_getnl(argv)); /* uid */
|
||||
cred->cr_gid = make_kgid(&init_user_ns, svc_getnl(argv)); /* gid */
|
||||
slen = svc_getnl(argv); /* gids length */
|
||||
if (slen > 16 || (len -= (slen + 2)*4) < 0)
|
||||
if (slen > UNX_NGROUPS || (len -= (slen + 2)*4) < 0)
|
||||
goto badcred;
|
||||
cred->cr_group_info = groups_alloc(slen);
|
||||
if (cred->cr_group_info == NULL)
|
||||
|
Loading…
Reference in New Issue
Block a user