Bsd_acct: plain current->real_parent access is not always safe
PATCH 1/2 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 <[email protected]>
--- kernel/acct.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-)
kernel/acct.c +3 -1
@@ -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);
Signature · 1 line
1.5.3.4