mirror of
https://github.com/torvalds/linux.git
synced 2026-07-28 18:21:24 +02:00
KEYS: Use acquire when reading state in keyring search
The negative-key race fix added release/acquire ordering for key use.
Publish payload before state; read state before payload.
keyring_search_iterator() still uses READ_ONCE() before match callbacks.
An asymmetric match callback calls asymmetric_key_ids(), which reads
key->payload.data[asym_key_ids].
Use key_read_state() there to complete that ordering.
Fixes: 363b02dab0 ("KEYS: Fix race between updating and finding a negative key")
Signed-off-by: Gui-Dong Han <hanguidong02@gmail.com>
Reviewed-by: Jarkko Sakkinen <jarkko@kernel.org>
Link: https://lore.kernel.org/r/20260529033406.20673-1-hanguidong02@gmail.com
Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org>
This commit is contained in:
parent
cc99abbe2a
commit
c1201b37f6
|
|
@ -576,7 +576,7 @@ static int keyring_search_iterator(const void *object, void *iterator_data)
|
|||
struct keyring_search_context *ctx = iterator_data;
|
||||
const struct key *key = keyring_ptr_to_key(object);
|
||||
unsigned long kflags = READ_ONCE(key->flags);
|
||||
short state = READ_ONCE(key->state);
|
||||
short state = key_read_state(key);
|
||||
|
||||
kenter("{%d}", key->serial);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user