mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2026-09-22 09:34:56 +02:00
KEYS: Use acquire when reading state in keyring search
[ Upstream commitc1201b37f6] 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> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
55d0edf94c
commit
00cd01ea0c
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user