diff --git a/fs/namespace.c b/fs/namespace.c index 2b12b7a9455d0b60bc6a0498c18264090321a3d1..acc5583764dc0925ad2f4745824d3848b743e978 100644 --- a/fs/namespace.c +++ b/fs/namespace.c @@ -1669,8 +1669,11 @@ struct vfsmount *collect_mounts(struct path *path) { struct mount *tree; namespace_lock(); - tree = copy_tree(real_mount(path->mnt), path->dentry, - CL_COPY_ALL | CL_PRIVATE); + if (!check_mnt(real_mount(path->mnt))) + tree = ERR_PTR(-EINVAL); + else + tree = copy_tree(real_mount(path->mnt), path->dentry, + CL_COPY_ALL | CL_PRIVATE); namespace_unlock(); if (IS_ERR(tree)) return ERR_CAST(tree);