Commit 9a948eef authored by Paul Moore's avatar Paul Moore
Browse files

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: default avatarXiu Jianfeng <xiujianfeng@huawei.com>
Signed-off-by: default avatarPaul Moore <paul@paul-moore.com>
parent 0e6ebf87
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -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");