diff options
author | Jean-Pierre André <jpandre@users.sourceforge.net> | 2013-05-12 09:58:16 +0200 |
---|---|---|
committer | Jean-Pierre André <jpandre@users.sourceforge.net> | 2013-05-12 09:58:16 +0200 |
commit | bdf2af1a7dd2a3a2c0e09e035e538ebadc81ca1c (patch) | |
tree | f976bf2aa922063c417793e3f8b10be99d13190b | |
parent | d129232a28be863def908571fde28f4a3a0bb9bf (diff) | |
download | illumos-fusefs-bdf2af1a7dd2a3a2c0e09e035e538ebadc81ca1c.tar.gz |
Defended against getting a non-fuse type directory
-rw-r--r-- | kernel/fuse_vnops.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/kernel/fuse_vnops.c b/kernel/fuse_vnops.c index 63e3d11..32c3b12 100644 --- a/kernel/fuse_vnops.c +++ b/kernel/fuse_vnops.c @@ -2117,6 +2117,11 @@ static int fuse_lookup(struct vnode *dvp, char *nm, struct vnode **vpp, * if this is the root of our filesystem, we will check * for valid access permissions */ + if (!VTOFD(dvp)) { + err = EIO; /* does not look like a fuse-type directory */ + goto out; + } + if ((VTOFD(dvp))->nodeid == FUSE_ROOT_ID) { if (err = fuse_access(dvp, VEXEC, flags, credp, ct)) { DTRACE_PROBE2(fuse_lookup_err_access, |