[Bug 253593] Process hangs if nullfs mounted cwd moved out of chroot
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Fri Apr 2 12:41:31 UTC 2021
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=253593
--- Comment #9 from commit-hook at FreeBSD.org ---
A commit in branch main references this bug:
URL:
https://cgit.FreeBSD.org/src/commit/?id=76b1b5ce6d81f66b09be8a20aecd064b65fd6b50
commit 76b1b5ce6d81f66b09be8a20aecd064b65fd6b50
Author: Konstantin Belousov <kib at FreeBSD.org>
AuthorDate: 2021-04-01 17:42:14 +0000
Commit: Konstantin Belousov <kib at FreeBSD.org>
CommitDate: 2021-04-02 12:40:25 +0000
nullfs: protect against user creating inconsistent state
The VFS conventions is that VOP_LOOKUP() methods do not need to handle
ISDOTDOT lookups for VV_ROOT vnodes (since they cannot, after all). Nullfs
bypasses VOP_LOOKUP() to lower filesystem, and there, due to user actions,
it is possible to get into situation where
- upper vnode does not have VV_ROOT set
- lower vnode is root
- ISDOTDOT is requested
User just needs to nullfs-mount non-root of some filesystem, and then move
some directory under mount, out of mount, using lower filesystem.
In this case, nullfs cannot do much, but we still should and can ensure
internal kernel structures are consistent. Avoid ISDOTDOT lookup
forwarding
when VV_ROOT is set on lower dvp, return somewhat arbitrary ENOENT.
PR: 253593
Reported by: Gregor Koscak <elogin41 at gmail.com>
Test by: Patrick Sullivan <sulli00777 at gmail.com>
Tested by: pho
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
sys/fs/nullfs/null_vnops.c | 19 +++++++++++++++----
1 file changed, 15 insertions(+), 4 deletions(-)
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-bugs
mailing list