cifs: ensure that cifs_get_root() only traverses directories
[platform/adaptation/renesas_rcar/renesas_kernel.git] / fs / cifs / cifsfs.c
index 4bad7b1..1a052c0 100644 (file)
@@ -564,6 +564,11 @@ cifs_get_root(struct smb_vol *vol, struct super_block *sb)
                        dentry = ERR_PTR(-ENOENT);
                        break;
                }
+               if (!S_ISDIR(dir->i_mode)) {
+                       dput(dentry);
+                       dentry = ERR_PTR(-ENOTDIR);
+                       break;
+               }
 
                /* skip separators */
                while (*s == sep)