[PATCH] check for null vfsmount in dentry_open()
Make sure no-one calls dentry_open with a NULL vfsmount argument and crap out with a stacktrace otherwise. A NULL file->f_vfsmnt has always been problematic, but with the per-mount r/o tracking we can't accept anymore at all. [AV] the last place that passed NULL had been eliminated by the previous patch (reiserfs xattr stuff) Acked-by: Al Viro <viro@ZenIV.linux.org.uk> Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Dave Hansen <haveblue@us.ibm.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
3227e14c3c
commit
322ee5b36e
1 changed files with 12 additions and 0 deletions
12
fs/open.c
12
fs/open.c
|
@ -903,6 +903,18 @@ struct file *dentry_open(struct dentry *dentry, struct vfsmount *mnt, int flags)
|
|||
int error;
|
||||
struct file *f;
|
||||
|
||||
/*
|
||||
* We must always pass in a valid mount pointer. Historically
|
||||
* callers got away with not passing it, but we must enforce this at
|
||||
* the earliest possible point now to avoid strange problems deep in the
|
||||
* filesystem stack.
|
||||
*/
|
||||
if (!mnt) {
|
||||
printk(KERN_WARNING "%s called with NULL vfsmount\n", __func__);
|
||||
dump_stack();
|
||||
return ERR_PTR(-EINVAL);
|
||||
}
|
||||
|
||||
error = -ENFILE;
|
||||
f = get_empty_filp();
|
||||
if (f == NULL) {
|
||||
|
|
Loading…
Reference in a new issue