summaryrefslogtreecommitdiffstats
path: root/net/ipv6
diff options
context:
space:
mode:
authorOleg Nesterov <oleg@redhat.com>2012-05-31 16:26:16 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2012-05-31 17:49:28 -0700
commit43e13cc107cf6cd3c15fbe1cef849435c2223d50 (patch)
tree9a1b3aa79ec2e8374944c23cf57a73790a3fc6ce /net/ipv6
parent9b3c98cd663750c33434572ff76ba306505eba5a (diff)
downloadlinux-stable-43e13cc107cf6cd3c15fbe1cef849435c2223d50.tar.gz
linux-stable-43e13cc107cf6cd3c15fbe1cef849435c2223d50.tar.bz2
linux-stable-43e13cc107cf6cd3c15fbe1cef849435c2223d50.zip
cred: remove task_is_dead() from __task_cred() validation
Commit 8f92054e7ca1 ("CRED: Fix __task_cred()'s lockdep check and banner comment"): add the following validation condition: task->exit_state >= 0 to permit the access if the target task is dead and therefore unable to change its own credentials. OK, but afaics currently this can only help wait_task_zombie() which calls __task_cred() without rcu lock. Remove this validation and change wait_task_zombie() to use task_uid() instead. This means we do rcu_read_lock() only to shut up the lockdep, but we already do the same in, say, wait_task_stopped(). task_is_dead() should die, task->exit_state != 0 means that this task has passed exit_notify(), only do_wait-like code paths should use this. Unfortunately, we can't kill task_is_dead() right now, it has already acquired buggy users in drivers/staging. The fix already exists. Signed-off-by: Oleg Nesterov <oleg@redhat.com> Reviewed-by: "Eric W. Biederman" <ebiederm@xmission.com> Acked-by: David Howells <dhowells@redhat.com> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Cc: James Morris <jmorris@namei.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'net/ipv6')
0 files changed, 0 insertions, 0 deletions