diff options
author | Eric W. Biederman <ebiederm@xmission.com> | 2012-02-08 15:53:04 (GMT) |
---|---|---|
committer | Eric W. Biederman <ebiederm@xmission.com> | 2012-09-14 01:28:02 (GMT) |
commit | 9a56c2db49e7349c7963f0ce66c1ef578d44ebd3 (patch) | |
tree | de29b56483bb00efabca3ba35c7001cab2aab7be /security/keys/keyring.c | |
parent | 5fce5e0bbd44263c36f58ad1113b599d06ed1978 (diff) | |
download | linux-9a56c2db49e7349c7963f0ce66c1ef578d44ebd3.tar.xz |
userns: Convert security/keys to the new userns infrastructure
- Replace key_user ->user_ns equality checks with kuid_has_mapping checks.
- Use from_kuid to generate key descriptions
- Use kuid_t and kgid_t and the associated helpers instead of uid_t and gid_t
- Avoid potential problems with file descriptor passing by displaying
keys in the user namespace of the opener of key status proc files.
Cc: linux-security-module@vger.kernel.org
Cc: keyrings@linux-nfs.org
Cc: David Howells <dhowells@redhat.com>
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Diffstat (limited to 'security/keys/keyring.c')
-rw-r--r-- | security/keys/keyring.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/security/keys/keyring.c b/security/keys/keyring.c index 81e7852..a5f5c4b 100644 --- a/security/keys/keyring.c +++ b/security/keys/keyring.c @@ -256,7 +256,7 @@ error: /* * Allocate a keyring and link into the destination keyring. */ -struct key *keyring_alloc(const char *description, uid_t uid, gid_t gid, +struct key *keyring_alloc(const char *description, kuid_t uid, kgid_t gid, const struct cred *cred, unsigned long flags, struct key *dest) { @@ -612,7 +612,7 @@ struct key *find_keyring_by_name(const char *name, bool skip_perm_check) &keyring_name_hash[bucket], type_data.link ) { - if (keyring->user->user_ns != current_user_ns()) + if (!kuid_has_mapping(current_user_ns(), keyring->user->uid)) continue; if (test_bit(KEY_FLAG_REVOKED, &keyring->flags)) |