In order to safely dereference current->real_parent inside an rcu_read_lock, we need an rcu_dereference.
Unified · Split
| @@ -1368,7 +1368,7 @@ SYSCALL_DEFINE0(getppid) · 1367 unmodified lines | |||
| 1368 | int pid; | 1368 | int pid; |
| 1369 | 1369 | ||
| 1370 | rcu_read_lock(); | 1370 | rcu_read_lock(); |
| 1371 | pid = task_tgid_vnr(current->real_parent); | 1371 | pid = task_tgid_vnr(rcu_dereference(current->real_parent)); |
| 1372 | rcu_read_unlock(); | 1372 | rcu_read_unlock(); |
| 1373 | 1373 | ||
| 1374 | return pid; | 1374 | return pid; |