Re: [PATCH 1/2] userns: remove dead key_put() on the create_user_ns() error path
From: Bradley Morgan
Date: Fri Aug 28 2026 - 07:54:55 EST
On 28 August 2026 10:16:58 BST, Tao Cui <cui.tao@xxxxxxxxx> wrote:
>From: Tao Cui <cuitao@xxxxxxxxxx>
>
>create_user_ns() jumps to fail_keyring when setup_userns_sysctls()
>fails. At that point ns was freshly allocated with
>kmem_cache_zalloc() and ns->persistent_keyring_register is only ever
>assigned later, lazily, from key_get_persistent()
>(security/keys/persistent.c). The key_put() therefore always
>receives NULL.
>
>Remove the dead call.
>
Agreed,
Reviewed-by: Bradley Morgan <brads@xxxxxxxxxxxxxx>
>Signed-off-by: Tao Cui <cuitao@xxxxxxxxxx>
>---
> kernel/user_namespace.c | 3 ---
> 1 file changed, 3 deletions(-)
>
>diff --git a/kernel/user_namespace.c b/kernel/user_namespace.c
>index 0bed462e9b2a..e9e04ce167df 100644
>--- a/kernel/user_namespace.c
>+++ b/kernel/user_namespace.c
>@@ -162,9 +162,6 @@ int create_user_ns(struct cred *new)
> ns_tree_add(ns);
> return 0;
> fail_keyring:
>-#ifdef CONFIG_PERSISTENT_KEYRINGS
>- key_put(ns->persistent_keyring_register);
>-#endif
> ns_common_free(ns);
> fail_free:
> kmem_cache_free(user_ns_cachep, ns);
>
--- Thanks!
https://lore.kernel.org/all/EE579805-42F2-4C58-B752-F28779EEB717@xxxxxxxxx/