提交 bf37f794 编写于 作者: E Eric W. Biederman

sunrpc: Use userns friendly constants.

Instead of (uid_t)0 use GLOBAL_ROOT_UID.
Instead of (gid_t)0 use GLOBAL_ROOT_GID.
Instead of (uid_t)-1 use INVALID_UID
Instead of (gid_t)-1 use INVALID_GID.
Instead of NOGROUP use INVALID_GID.

Cc: "J. Bruce Fields" <bfields@fieldses.org>
Cc: Trond Myklebust <Trond.Myklebust@netapp.com>
Signed-off-by: N"Eric W. Biederman" <ebiederm@xmission.com>
上级 ddca4e17
...@@ -519,8 +519,8 @@ rpcauth_bind_root_cred(struct rpc_task *task, int lookupflags) ...@@ -519,8 +519,8 @@ rpcauth_bind_root_cred(struct rpc_task *task, int lookupflags)
{ {
struct rpc_auth *auth = task->tk_client->cl_auth; struct rpc_auth *auth = task->tk_client->cl_auth;
struct auth_cred acred = { struct auth_cred acred = {
.uid = 0, .uid = GLOBAL_ROOT_UID,
.gid = 0, .gid = GLOBAL_ROOT_GID,
}; };
dprintk("RPC: %5u looking up %s cred\n", dprintk("RPC: %5u looking up %s cred\n",
......
...@@ -18,8 +18,8 @@ ...@@ -18,8 +18,8 @@
# define RPCDBG_FACILITY RPCDBG_AUTH # define RPCDBG_FACILITY RPCDBG_AUTH
#endif #endif
#define RPC_MACHINE_CRED_USERID ((uid_t)0) #define RPC_MACHINE_CRED_USERID GLOBAL_ROOT_UID
#define RPC_MACHINE_CRED_GROUPID ((gid_t)0) #define RPC_MACHINE_CRED_GROUPID GLOBAL_ROOT_GID
struct generic_cred { struct generic_cred {
struct rpc_cred gc_base; struct rpc_cred gc_base;
......
...@@ -85,7 +85,7 @@ unx_create_cred(struct rpc_auth *auth, struct auth_cred *acred, int flags) ...@@ -85,7 +85,7 @@ unx_create_cred(struct rpc_auth *auth, struct auth_cred *acred, int flags)
cred->uc_gids[i] = gid; cred->uc_gids[i] = gid;
} }
if (i < NFS_NGROUPS) if (i < NFS_NGROUPS)
cred->uc_gids[i] = NOGROUP; cred->uc_gids[i] = INVALID_GID;
return &cred->uc_base; return &cred->uc_base;
} }
...@@ -137,7 +137,7 @@ unx_match(struct auth_cred *acred, struct rpc_cred *rcred, int flags) ...@@ -137,7 +137,7 @@ unx_match(struct auth_cred *acred, struct rpc_cred *rcred, int flags)
return 0; return 0;
} }
if (groups < NFS_NGROUPS && if (groups < NFS_NGROUPS &&
cred->uc_gids[groups] != NOGROUP) cred->uc_gids[groups] != INVALID_GID)
return 0; return 0;
return 1; return 1;
} }
...@@ -166,7 +166,7 @@ unx_marshal(struct rpc_task *task, __be32 *p) ...@@ -166,7 +166,7 @@ unx_marshal(struct rpc_task *task, __be32 *p)
*p++ = htonl((u32) cred->uc_uid); *p++ = htonl((u32) cred->uc_uid);
*p++ = htonl((u32) cred->uc_gid); *p++ = htonl((u32) cred->uc_gid);
hold = p++; hold = p++;
for (i = 0; i < 16 && cred->uc_gids[i] != (gid_t) NOGROUP; i++) for (i = 0; i < 16 && cred->uc_gids[i] != INVALID_GID; i++)
*p++ = htonl((u32) cred->uc_gids[i]); *p++ = htonl((u32) cred->uc_gids[i]);
*hold = htonl(p - hold - 1); /* gid array length */ *hold = htonl(p - hold - 1); /* gid array length */
*base = htonl((p - base - 1) << 2); /* cred length */ *base = htonl((p - base - 1) << 2); /* cred length */
......
...@@ -750,8 +750,8 @@ svcauth_null_accept(struct svc_rqst *rqstp, __be32 *authp) ...@@ -750,8 +750,8 @@ svcauth_null_accept(struct svc_rqst *rqstp, __be32 *authp)
} }
/* Signal that mapping to nobody uid/gid is required */ /* Signal that mapping to nobody uid/gid is required */
cred->cr_uid = (uid_t) -1; cred->cr_uid = INVALID_UID;
cred->cr_gid = (gid_t) -1; cred->cr_gid = INVALID_GID;
cred->cr_group_info = groups_alloc(0); cred->cr_group_info = groups_alloc(0);
if (cred->cr_group_info == NULL) if (cred->cr_group_info == NULL)
return SVC_CLOSE; /* kmalloc failure - client must retry */ return SVC_CLOSE; /* kmalloc failure - client must retry */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册