keys: sparse: Fix incorrect RCU accesses
Fix a pair of accesses that should be using RCU protection. rcu_dereference_protected() is needed to access task_struct::real_parent. current_cred() should be used to access current->cred. Signed-off-by: David Howells <dhowells@redhat.com> Reviewed-by: James Morris <jamorris@linux.microsoft.com>
This commit is contained in:
Родитель
2e21865faf
Коммит
7936d16df9
|
@ -1524,7 +1524,8 @@ long keyctl_session_to_parent(void)
|
|||
|
||||
ret = -EPERM;
|
||||
oldwork = NULL;
|
||||
parent = me->real_parent;
|
||||
parent = rcu_dereference_protected(me->real_parent,
|
||||
lockdep_is_held(&tasklist_lock));
|
||||
|
||||
/* the parent mustn't be init and mustn't be a kernel thread */
|
||||
if (parent->pid <= 1 || !parent->mm)
|
||||
|
|
|
@ -152,7 +152,7 @@ struct key *request_key_auth_new(struct key *target, const char *op,
|
|||
struct key *dest_keyring)
|
||||
{
|
||||
struct request_key_auth *rka, *irka;
|
||||
const struct cred *cred = current->cred;
|
||||
const struct cred *cred = current_cred();
|
||||
struct key *authkey = NULL;
|
||||
char desc[20];
|
||||
int ret = -ENOMEM;
|
||||
|
|
Загрузка…
Ссылка в новой задаче