diff options
Diffstat (limited to 'net/sunrpc/auth_generic.c')
-rw-r--r-- | net/sunrpc/auth_generic.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/net/sunrpc/auth_generic.c b/net/sunrpc/auth_generic.c index 6ed6f201b022..b6badafc6494 100644 --- a/net/sunrpc/auth_generic.c +++ b/net/sunrpc/auth_generic.c | |||
@@ -18,8 +18,8 @@ | |||
18 | # define RPCDBG_FACILITY RPCDBG_AUTH | 18 | # define RPCDBG_FACILITY RPCDBG_AUTH |
19 | #endif | 19 | #endif |
20 | 20 | ||
21 | #define RPC_MACHINE_CRED_USERID ((uid_t)0) | 21 | #define RPC_MACHINE_CRED_USERID GLOBAL_ROOT_UID |
22 | #define RPC_MACHINE_CRED_GROUPID ((gid_t)0) | 22 | #define RPC_MACHINE_CRED_GROUPID GLOBAL_ROOT_GID |
23 | 23 | ||
24 | struct generic_cred { | 24 | struct generic_cred { |
25 | struct rpc_cred gc_base; | 25 | struct rpc_cred gc_base; |
@@ -96,7 +96,9 @@ generic_create_cred(struct rpc_auth *auth, struct auth_cred *acred, int flags) | |||
96 | 96 | ||
97 | dprintk("RPC: allocated %s cred %p for uid %d gid %d\n", | 97 | dprintk("RPC: allocated %s cred %p for uid %d gid %d\n", |
98 | gcred->acred.machine_cred ? "machine" : "generic", | 98 | gcred->acred.machine_cred ? "machine" : "generic", |
99 | gcred, acred->uid, acred->gid); | 99 | gcred, |
100 | from_kuid(&init_user_ns, acred->uid), | ||
101 | from_kgid(&init_user_ns, acred->gid)); | ||
100 | return &gcred->gc_base; | 102 | return &gcred->gc_base; |
101 | } | 103 | } |
102 | 104 | ||
@@ -129,8 +131,8 @@ machine_cred_match(struct auth_cred *acred, struct generic_cred *gcred, int flag | |||
129 | { | 131 | { |
130 | if (!gcred->acred.machine_cred || | 132 | if (!gcred->acred.machine_cred || |
131 | gcred->acred.principal != acred->principal || | 133 | gcred->acred.principal != acred->principal || |
132 | gcred->acred.uid != acred->uid || | 134 | !uid_eq(gcred->acred.uid, acred->uid) || |
133 | gcred->acred.gid != acred->gid) | 135 | !gid_eq(gcred->acred.gid, acred->gid)) |
134 | return 0; | 136 | return 0; |
135 | return 1; | 137 | return 1; |
136 | } | 138 | } |
@@ -147,8 +149,8 @@ generic_match(struct auth_cred *acred, struct rpc_cred *cred, int flags) | |||
147 | if (acred->machine_cred) | 149 | if (acred->machine_cred) |
148 | return machine_cred_match(acred, gcred, flags); | 150 | return machine_cred_match(acred, gcred, flags); |
149 | 151 | ||
150 | if (gcred->acred.uid != acred->uid || | 152 | if (!uid_eq(gcred->acred.uid, acred->uid) || |
151 | gcred->acred.gid != acred->gid || | 153 | !gid_eq(gcred->acred.gid, acred->gid) || |
152 | gcred->acred.machine_cred != 0) | 154 | gcred->acred.machine_cred != 0) |
153 | goto out_nomatch; | 155 | goto out_nomatch; |
154 | 156 | ||