From: Paul Moore Date: Wed, 19 Nov 2025 00:18:10 +0000 (-0500) Subject: lsm: use unrcu_pointer() for current->cred in security_init() X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9a948eefad594c42717f29824dd40d6dc0b7aa13;p=thirdparty%2Flinux.git lsm: use unrcu_pointer() for current->cred in security_init() We need to directly allocate the cred's LSM state for the initial task when we initialize the LSM framework. Unfortunately, this results in a RCU related type mismatch, use the unrcu_pointer() macro to handle this a bit more elegantly. The explicit type casting still remains as we need to work around the constification of current->cred in this particular case. Reviewed-by: Xiu Jianfeng Signed-off-by: Paul Moore --- diff --git a/security/lsm_init.c b/security/lsm_init.c index 6bb67d41ce52b..05bd52e6b1f25 100644 --- a/security/lsm_init.c +++ b/security/lsm_init.c @@ -467,7 +467,8 @@ int __init security_init(void) blob_sizes.lbs_inode, 0, SLAB_PANIC, NULL); - if (lsm_cred_alloc((struct cred __rcu *)current->cred, GFP_KERNEL)) + if (lsm_cred_alloc((struct cred *)unrcu_pointer(current->cred), + GFP_KERNEL)) panic("early LSM cred alloc failed\n"); if (lsm_task_alloc(current)) panic("early LSM task alloc failed\n");