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 | 1368 | int pid; |
| 1369 | 1369 | |
| 1370 | 1370 | rcu_read_lock(); |
| 1371 | − pid = task_tgid_vnr(current->real_parent); | |
| 1371 | + pid = task_tgid_vnr(rcu_dereference(current->real_parent)); | |
| 1372 | 1372 | rcu_read_unlock(); |
| 1373 | 1373 | |
| 1374 | 1374 | return pid; |