summaryrefslogtreecommitdiffstats
path: root/arch/arm64/mm/fault.c
diff options
context:
space:
mode:
authorEric W. Biederman <ebiederm@xmission.com>2015-08-15 20:27:13 -0500
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2015-10-22 14:37:52 -0700
commitfa6ef735862a25daff2a3ee3aba1e32f278f21c5 (patch)
tree03dcba15f99b94ef11f38d9c993479c566503852 /arch/arm64/mm/fault.c
parent91397d567646df4ede8619beb678252e82fafb2a (diff)
downloadlinux-stable-fa6ef735862a25daff2a3ee3aba1e32f278f21c5.tar.gz
linux-stable-fa6ef735862a25daff2a3ee3aba1e32f278f21c5.tar.bz2
linux-stable-fa6ef735862a25daff2a3ee3aba1e32f278f21c5.zip
vfs: Test for and handle paths that are unreachable from their mnt_root
commit 397d425dc26da728396e66d392d5dcb8dac30c37 upstream. In rare cases a directory can be renamed out from under a bind mount. In those cases without special handling it becomes possible to walk up the directory tree to the root dentry of the filesystem and down from the root dentry to every other file or directory on the filesystem. Like division by zero .. from an unconnected path can not be given a useful semantic as there is no predicting at which path component the code will realize it is unconnected. We certainly can not match the current behavior as the current behavior is a security hole. Therefore when encounting .. when following an unconnected path return -ENOENT. - Add a function path_connected to verify path->dentry is reachable from path->mnt.mnt_root. AKA to validate that rename did not do something nasty to the bind mount. To avoid races path_connected must be called after following a path component to it's next path component. Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'arch/arm64/mm/fault.c')
0 files changed, 0 insertions, 0 deletions