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: Pavel Emelyanov <xemul@openvz.org> Cc: Oleg Nesterov <oleg@tv-sign.ru> Cc: "Paul E. McKenney" <paulmck@us.ibm.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Родитель
4dd4b92021
Коммит
a846a1954b
|
@ -482,7 +482,9 @@ static void do_acct_process(struct file *file)
|
|||
#endif
|
||||
#if ACCT_VERSION==3
|
||||
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
|
||||
|
||||
spin_lock_irq(¤t->sighand->siglock);
|
||||
|
|
Загрузка…
Ссылка в новой задаче