summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fs/smb/client/fs_context.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/fs/smb/client/fs_context.c b/fs/smb/client/fs_context.c
index a46764c24710..3f0faae99ed5 100644
--- a/fs/smb/client/fs_context.c
+++ b/fs/smb/client/fs_context.c
@@ -662,13 +662,17 @@ smb3_parse_devname(const char *devname, struct smb3_fs_context *ctx)
/* make sure we have a valid UNC double delimiter prefix */
len = strspn(devname, delims);
- if (len != 2)
+ if (len != 2) {
+ cifs_dbg(VFS, "UNC: path must begin with // or \\\\\n");
return -EINVAL;
+ }
/* find delimiter between host and sharename */
pos = strpbrk(devname + 2, delims);
- if (!pos)
+ if (!pos) {
+ cifs_dbg(VFS, "UNC: missing delimiter between hostname and share name\n");
return -EINVAL;
+ }
/* record the server hostname */
kfree(ctx->server_hostname);
@@ -681,8 +685,10 @@ smb3_parse_devname(const char *devname, struct smb3_fs_context *ctx)
/* now go until next delimiter or end of string */
len = strcspn(pos, delims);
- if (!len)
+ if (!len) {
+ cifs_dbg(VFS, "UNC: missing share name\n");
return -EINVAL;
+ }
/* move "pos" up to delimiter or NULL */
pos += len;