summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Kent <raven@themaw.net>2008-07-23 21:30:22 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2008-07-24 10:47:32 -0700
commiteb3b176796b0e53fd26fce86847231542eb0d198 (patch)
tree85bd1a2e79e92d1ff52714aa19888ef7e4f80638
parent296f7bf78bc5c7a4d772aea580ce800d14040d1a (diff)
downloadlwn-eb3b176796b0e53fd26fce86847231542eb0d198.tar.gz
lwn-eb3b176796b0e53fd26fce86847231542eb0d198.zip
autofs4: detect invalid direct mount requests
autofs v5 direct and offset mounts within an autofs filesystem are triggered by existing autofs triger mounts so the mount point dentry must be positive. If the mount point dentry is negative then the trigger doesn't exist so we can return fail immediately. Signed-off-by: Ian Kent <raven@themaw.net> Cc: Jeff Moyer <jmoyer@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--fs/autofs4/waitq.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/autofs4/waitq.c b/fs/autofs4/waitq.c
index 3458dbc8fff0..bcb6c5265467 100644
--- a/fs/autofs4/waitq.c
+++ b/fs/autofs4/waitq.c
@@ -328,6 +328,10 @@ int autofs4_wait(struct autofs_sb_info *sbi, struct dentry *dentry,
if (sbi->catatonic)
return -ENOENT;
+ if (!dentry->d_inode &&
+ (sbi->type & (AUTOFS_TYPE_DIRECT | AUTOFS_TYPE_OFFSET)))
+ return -ENOENT;
+
name = kmalloc(NAME_MAX + 1, GFP_KERNEL);
if (!name)
return -ENOMEM;