Commit a846a195 authored by Pavel Emelyanov's avatar Pavel Emelyanov Committed by Linus Torvalds

bsd_acct: plain current->real_parent access is not always safe

This is minor, but dereferencing even current real_parent is not safe on debug
kernels, since the memory, this points to, can be unmapped - RCU protection is
required.

Besides, the tgid field is deprecated and is to be replaced with task_tgid_xxx
call (the 2nd patch), so RCU will be required anyway.
Signed-off-by: default avatarPavel Emelyanov <xemul@openvz.org>
Cc: Oleg Nesterov <oleg@tv-sign.ru>
Cc: "Paul E. McKenney" <paulmck@us.ibm.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 4dd4b920
...@@ -482,7 +482,9 @@ static void do_acct_process(struct file *file) ...@@ -482,7 +482,9 @@ static void do_acct_process(struct file *file)
#endif #endif
#if ACCT_VERSION==3 #if ACCT_VERSION==3
ac.ac_pid = current->tgid; ac.ac_pid = current->tgid;
ac.ac_ppid = current->real_parent->tgid; rcu_read_lock();
ac.ac_ppid = rcu_dereference(current->real_parent)->tgid;
rcu_read_unlock();
#endif #endif
spin_lock_irq(&current->sighand->siglock); spin_lock_irq(&current->sighand->siglock);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment