mirror of
https://github.com/followmsi/android_kernel_google_msm.git
synced 2024-11-06 23:17:41 +00:00
mnt: Fail collect_mounts when applied to unmounted mounts
The only users of collect_mounts are in audit_tree.c In audit_trim_trees and audit_add_tree_rule the path passed into collect_mounts is generated from kern_path passed an audit_tree pathname which is guaranteed to be an absolute path. In those cases collect_mounts is obviously intended to work on mounted paths and if a race results in paths that are unmounted when collect_mounts it is reasonable to fail early. The paths passed into audit_tag_tree don't have the absolute path check. But are used to play with fsnotify and otherwise interact with the audit_trees, so again operating only on mounted paths appears reasonable. Avoid having to worry about what happens when we try and audit unmounted filesystems by restricting collect_mounts to mounts that appear in the mount tree. Change-Id: I2edfee6d6951a2179ce8f53785b65ddb1eb95629 Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
This commit is contained in:
parent
0f76e6ad56
commit
61f1c9ad34
1 changed files with 5 additions and 2 deletions
|
@ -1334,8 +1334,11 @@ struct vfsmount *collect_mounts(struct path *path)
|
|||
{
|
||||
struct mount *tree;
|
||||
down_write(&namespace_sem);
|
||||
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);
|
||||
up_write(&namespace_sem);
|
||||
if (IS_ERR(tree))
|
||||
return NULL;
|
||||
|
|
Loading…
Reference in a new issue