Skip to content

Commit

Permalink
cifs: fix error handling when calling cifs_parse_devname
Browse files Browse the repository at this point in the history
When we allowed separate unc= and prefixpath= mount options, we could
ignore EINVAL errors from cifs_parse_devname. Now that they are
deprecated, we need to check for that as well and fail the mount if it's
malformed.

Also fix a later error message that refers to the unc= option.

Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
  • Loading branch information
Jeff Layton authored and Steve French committed May 24, 2013
1 parent 539673f commit 37d4f99
Showing 1 changed file with 13 additions and 9 deletions.
22 changes: 13 additions & 9 deletions fs/cifs/connect.c
Original file line number Diff line number Diff line change
Expand Up @@ -1258,14 +1258,18 @@ cifs_parse_mount_options(const char *mountdata, const char *devname,
vol->backupuid_specified = false; /* no backup intent for a user */
vol->backupgid_specified = false; /* no backup intent for a group */

/*
* For now, we ignore -EINVAL errors under the assumption that the
* unc= and prefixpath= options will be usable.
*/
if (cifs_parse_devname(devname, vol) == -ENOMEM) {
printk(KERN_ERR "CIFS: Unable to allocate memory to parse "
"device string.\n");
goto out_nomem;
switch (cifs_parse_devname(devname, vol)) {
case 0:
break;
case -ENOMEM:
cifs_dbg(VFS, "Unable to allocate memory for devname.\n");
goto cifs_parse_mount_err;
case -EINVAL:
cifs_dbg(VFS, "Malformed UNC in devname.\n");
goto cifs_parse_mount_err;
default:
cifs_dbg(VFS, "Unknown error parsing devname.\n");
goto cifs_parse_mount_err;
}

while ((data = strsep(&options, separator)) != NULL) {
Expand Down Expand Up @@ -1827,7 +1831,7 @@ cifs_parse_mount_options(const char *mountdata, const char *devname,
}
#endif
if (!vol->UNC) {
cifs_dbg(VFS, "CIFS mount error: No usable UNC path provided in device string or in unc= option!\n");
cifs_dbg(VFS, "CIFS mount error: No usable UNC path provided in device string!\n");
goto cifs_parse_mount_err;
}

Expand Down

0 comments on commit 37d4f99

Please sign in to comment.