Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bf37f794 authored by Eric W. Biederman's avatar Eric W. Biederman
Browse files

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: default avatar"Eric W. Biederman" <ebiederm@xmission.com>
parent ddca4e17
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -519,8 +519,8 @@ rpcauth_bind_root_cred(struct rpc_task *task, int lookupflags)
{
	struct rpc_auth *auth = task->tk_client->cl_auth;
	struct auth_cred acred = {
		.uid = 0,
		.gid = 0,
		.uid = GLOBAL_ROOT_UID,
		.gid = GLOBAL_ROOT_GID,
	};

	dprintk("RPC: %5u looking up %s cred\n",
+2 −2
Original line number Diff line number Diff line
@@ -18,8 +18,8 @@
# define RPCDBG_FACILITY	RPCDBG_AUTH
#endif

#define RPC_MACHINE_CRED_USERID		((uid_t)0)
#define RPC_MACHINE_CRED_GROUPID	((gid_t)0)
#define RPC_MACHINE_CRED_USERID		GLOBAL_ROOT_UID
#define RPC_MACHINE_CRED_GROUPID	GLOBAL_ROOT_GID

struct generic_cred {
	struct rpc_cred gc_base;
+3 −3
Original line number Diff line number Diff line
@@ -85,7 +85,7 @@ unx_create_cred(struct rpc_auth *auth, struct auth_cred *acred, int flags)
		cred->uc_gids[i] = gid;
	}
	if (i < NFS_NGROUPS)
		cred->uc_gids[i] = NOGROUP;
		cred->uc_gids[i] = INVALID_GID;

	return &cred->uc_base;
}
@@ -137,7 +137,7 @@ unx_match(struct auth_cred *acred, struct rpc_cred *rcred, int flags)
			return 0;
	}
	if (groups < NFS_NGROUPS &&
	    cred->uc_gids[groups] != NOGROUP)
	    cred->uc_gids[groups] != INVALID_GID)
		return 0;
	return 1;
}
@@ -166,7 +166,7 @@ unx_marshal(struct rpc_task *task, __be32 *p)
	*p++ = htonl((u32) cred->uc_uid);
	*p++ = htonl((u32) cred->uc_gid);
	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]);
	*hold = htonl(p - hold - 1);		/* gid array length */
	*base = htonl((p - base - 1) << 2);	/* cred length */
+2 −2
Original line number Diff line number Diff line
@@ -750,8 +750,8 @@ svcauth_null_accept(struct svc_rqst *rqstp, __be32 *authp)
	}

	/* Signal that mapping to nobody uid/gid is required */
	cred->cr_uid = (uid_t) -1;
	cred->cr_gid = (gid_t) -1;
	cred->cr_uid = INVALID_UID;
	cred->cr_gid = INVALID_GID;
	cred->cr_group_info = groups_alloc(0);
	if (cred->cr_group_info == NULL)
		return SVC_CLOSE; /* kmalloc failure - client must retry */