summaryrefslogtreecommitdiffstats
path: root/fs/super.c
diff options
context:
space:
mode:
authorOleg Nesterov <oleg@redhat.com>2017-01-30 19:17:35 +0100
committerEric W. Biederman <ebiederm@xmission.com>2017-02-01 06:20:48 +0100
commitc6c70f4455d1eda91065e93cc4f7eddf4499b105 (patch)
treebf2f38330bc30a13329ae275172deffe863b36a8 /fs/super.c
parentvfs: open() with O_CREAT should not create inodes with unknown ids (diff)
downloadlinux-c6c70f4455d1eda91065e93cc4f7eddf4499b105.tar.xz
linux-c6c70f4455d1eda91065e93cc4f7eddf4499b105.zip
exit: fix the setns() && PR_SET_CHILD_SUBREAPER interaction
find_new_reaper() checks same_thread_group(reaper, child_reaper) to prevent the cross-namespace reparenting but this is not enough if the exiting parent was injected by setns() + fork(). Suppose we have a process P in the root namespace and some namespace X. P does setns() to enter the X namespace, and forks the child C. C forks a grandchild G and exits. The grandchild G should be re-parented to X->child_reaper, but in this case the ->real_parent chain does not lead to ->child_reaper, so it will be wrongly reparanted to P's sub-reaper or a global init. Signed-off-by: Oleg Nesterov <oleg@redhat.com> Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Diffstat (limited to 'fs/super.c')
0 files changed, 0 insertions, 0 deletions