diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c index 0f2781677cccd2063fb9abf5fb2121c8c9bce3c4..fef6156eb6c88d3081641aff7a98394b53e9aaf7 100644 --- a/fs/cifs/connect.c +++ b/fs/cifs/connect.c @@ -1945,9 +1945,14 @@ cifs_parse_mount_options(const char *mountdata, const char *devname, } if (!got_ip) { + int len; + const char *slash; + /* No ip= option specified? Try to get it from UNC */ - if (!cifs_convert_address(dstaddr, &vol->UNC[2], - strlen(&vol->UNC[2]))) { + /* Use the address part of the UNC. */ + slash = strchr(&vol->UNC[2], '\\'); + len = slash - &vol->UNC[2]; + if (!cifs_convert_address(dstaddr, &vol->UNC[2], len)) { pr_err("Unable to determine destination address.\n"); goto cifs_parse_mount_err; }