diff --git a/[refs] b/[refs] index aa6ae46a4652..70e8aea3173b 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: a7b862f663d81858531dfccc0537bc9d8a2a4121 +refs/heads/master: 3b7c8108273bed41a2fc04533cc9f2026ff38c8e diff --git a/trunk/fs/smbfs/dir.c b/trunk/fs/smbfs/dir.c index 34c7a11d91f0..70d9c5a37f5a 100644 --- a/trunk/fs/smbfs/dir.c +++ b/trunk/fs/smbfs/dir.c @@ -434,6 +434,11 @@ smb_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd) if (dentry->d_name.len > SMB_MAXNAMELEN) goto out; + /* Do not allow lookup of names with backslashes in */ + error = -EINVAL; + if (memchr(dentry->d_name.name, '\\', dentry->d_name.len)) + goto out; + lock_kernel(); error = smb_proc_getattr(dentry, &finfo); #ifdef SMBFS_PARANOIA