diff options
author | 2022-12-12 18:36:12 -0800 | |
---|---|---|
committer | 2022-12-12 18:36:12 -0800 | |
commit | 13c574fec815f449fa812df60844bbb4b1548d19 (patch) | |
tree | 7933f0630352c23f37da962c98f09b96c46ceef2 | |
parent | Merge tag 'pull-iov_iter' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs (diff) | |
parent | copy_mnt_ns(): handle a corner case (overmounted mntns bindings) saner (diff) | |
download | wireguard-linux-13c574fec815f449fa812df60844bbb4b1548d19.tar.xz wireguard-linux-13c574fec815f449fa812df60844bbb4b1548d19.zip |
Merge tag 'pull-namespace' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Pull namespace fix from Al Viro:
"Fix weird corner case in copy_mnt_ns()"
* tag 'pull-namespace' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
copy_mnt_ns(): handle a corner case (overmounted mntns bindings) saner
-rw-r--r-- | fs/namespace.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/namespace.c b/fs/namespace.c index df137ba19d37..c80f422084eb 100644 --- a/fs/namespace.c +++ b/fs/namespace.c @@ -3515,8 +3515,9 @@ struct mnt_namespace *copy_mnt_ns(unsigned long flags, struct mnt_namespace *ns, q = next_mnt(q, new); if (!q) break; + // an mntns binding we'd skipped? while (p->mnt.mnt_root != q->mnt.mnt_root) - p = next_mnt(p, old); + p = next_mnt(skip_mnt_tree(p), old); } namespace_unlock(); |