Commit a10a9233 authored by Scott Mayhew's avatar Scott Mayhew Committed by Anna Schumaker
Browse files

NFS: Use parent's objective cred in nfs_access_login_time()



The subjective cred (task->cred) can potentially be overridden and
subsquently freed in non-RCU context, which could lead to a panic if we
try to use it in cred_fscmp().  Use __task_cred(), which returns the
objective cred (task->real_cred) instead.

Fixes: 0eb43812 ("NFS: Clear the file access cache upon login")
Fixes: 5e9a7b9c ("NFS: Fix up a sparse warning")

Signed-off-by: default avatarScott Mayhew <smayhew@redhat.com>
Signed-off-by: default avatarAnna Schumaker <Anna.Schumaker@Netapp.com>
parent b4d4fd60
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -2963,7 +2963,7 @@ static u64 nfs_access_login_time(const struct task_struct *task,
	rcu_read_lock();
	for (;;) {
		parent = rcu_dereference(task->real_parent);
		pcred = rcu_dereference(parent->cred);
		pcred = __task_cred(parent);
		if (parent == task || cred_fscmp(pcred, cred) != 0)
			break;
		task = parent;