Commit e57e8669 authored by David Howells's avatar David Howells

KEYS: Drop the permissions argument from __keyring_search_one()

Drop the permissions argument from __keyring_search_one() as the only caller
passes 0 here - which causes all checks to be skipped.
Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
parent ccc3e6d9
...@@ -99,8 +99,7 @@ extern void __key_link_end(struct key *keyring, ...@@ -99,8 +99,7 @@ extern void __key_link_end(struct key *keyring,
unsigned long prealloc); unsigned long prealloc);
extern key_ref_t __keyring_search_one(key_ref_t keyring_ref, extern key_ref_t __keyring_search_one(key_ref_t keyring_ref,
const struct keyring_index_key *index_key, const struct keyring_index_key *index_key);
key_perm_t perm);
extern struct key *keyring_search_instkey(struct key *keyring, extern struct key *keyring_search_instkey(struct key *keyring,
key_serial_t target_id); key_serial_t target_id);
......
...@@ -847,7 +847,7 @@ key_ref_t key_create_or_update(key_ref_t keyring_ref, ...@@ -847,7 +847,7 @@ key_ref_t key_create_or_update(key_ref_t keyring_ref,
* update that instead if possible * update that instead if possible
*/ */
if (index_key.type->update) { if (index_key.type->update) {
key_ref = __keyring_search_one(keyring_ref, &index_key, 0); key_ref = __keyring_search_one(keyring_ref, &index_key);
if (!IS_ERR(key_ref)) if (!IS_ERR(key_ref))
goto found_matching_key; goto found_matching_key;
} }
......
...@@ -531,15 +531,14 @@ EXPORT_SYMBOL(keyring_search); ...@@ -531,15 +531,14 @@ EXPORT_SYMBOL(keyring_search);
* RCU is used to make it unnecessary to lock the keyring key list here. * RCU is used to make it unnecessary to lock the keyring key list here.
* *
* Returns a pointer to the found key with usage count incremented if * Returns a pointer to the found key with usage count incremented if
* successful and returns -ENOKEY if not found. Revoked keys and keys not * successful and returns -ENOKEY if not found. Revoked and invalidated keys
* providing the requested permission are skipped over. * are skipped over.
* *
* If successful, the possession indicator is propagated from the keyring ref * If successful, the possession indicator is propagated from the keyring ref
* to the returned key reference. * to the returned key reference.
*/ */
key_ref_t __keyring_search_one(key_ref_t keyring_ref, key_ref_t __keyring_search_one(key_ref_t keyring_ref,
const struct keyring_index_key *index_key, const struct keyring_index_key *index_key)
key_perm_t perm)
{ {
struct keyring_list *klist; struct keyring_list *klist;
struct key *keyring, *key; struct key *keyring, *key;
...@@ -560,8 +559,6 @@ key_ref_t __keyring_search_one(key_ref_t keyring_ref, ...@@ -560,8 +559,6 @@ key_ref_t __keyring_search_one(key_ref_t keyring_ref,
if (key->type == index_key->type && if (key->type == index_key->type &&
(!key->type->match || (!key->type->match ||
key->type->match(key, index_key->description)) && key->type->match(key, index_key->description)) &&
key_permission(make_key_ref(key, possessed),
perm) == 0 &&
!(key->flags & ((1 << KEY_FLAG_INVALIDATED) | !(key->flags & ((1 << KEY_FLAG_INVALIDATED) |
(1 << KEY_FLAG_REVOKED))) (1 << KEY_FLAG_REVOKED)))
) )
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment