cifs: fix build_unc_path_to_root to account for a prefixpath
Regression introduced by commit f87d39d951
.
Signed-off-by: Jeff Layton <jlayton@redhat.com>
Reviewed-by: Pavel Shilovsky <piastryyy@gmail.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
This commit is contained in:
committed by
Steve French
parent
677d8537d8
commit
b2a0fa1520
@@ -2855,19 +2855,28 @@ cifs_cleanup_volume_info(struct smb_vol **pvolume_info)
|
|||||||
/* build_path_to_root returns full path to root when
|
/* build_path_to_root returns full path to root when
|
||||||
* we do not have an exiting connection (tcon) */
|
* we do not have an exiting connection (tcon) */
|
||||||
static char *
|
static char *
|
||||||
build_unc_path_to_root(const struct smb_vol *volume_info,
|
build_unc_path_to_root(const struct smb_vol *vol,
|
||||||
const struct cifs_sb_info *cifs_sb)
|
const struct cifs_sb_info *cifs_sb)
|
||||||
{
|
{
|
||||||
char *full_path;
|
char *full_path, *pos;
|
||||||
|
unsigned int pplen = vol->prepath ? strlen(vol->prepath) : 0;
|
||||||
|
unsigned int unc_len = strnlen(vol->UNC, MAX_TREE_SIZE + 1);
|
||||||
|
|
||||||
int unc_len = strnlen(volume_info->UNC, MAX_TREE_SIZE + 1);
|
full_path = kmalloc(unc_len + pplen + 1, GFP_KERNEL);
|
||||||
full_path = kmalloc(unc_len + 1, GFP_KERNEL);
|
|
||||||
if (full_path == NULL)
|
if (full_path == NULL)
|
||||||
return ERR_PTR(-ENOMEM);
|
return ERR_PTR(-ENOMEM);
|
||||||
|
|
||||||
strncpy(full_path, volume_info->UNC, unc_len);
|
strncpy(full_path, vol->UNC, unc_len);
|
||||||
full_path[unc_len] = 0; /* add trailing null */
|
pos = full_path + unc_len;
|
||||||
|
|
||||||
|
if (pplen) {
|
||||||
|
strncpy(pos, vol->prepath, pplen);
|
||||||
|
pos += pplen;
|
||||||
|
}
|
||||||
|
|
||||||
|
*pos = '\0'; /* add trailing null */
|
||||||
convert_delimiter(full_path, CIFS_DIR_SEP(cifs_sb));
|
convert_delimiter(full_path, CIFS_DIR_SEP(cifs_sb));
|
||||||
|
cFYI(1, "%s: full_path=%s", __func__, full_path);
|
||||||
return full_path;
|
return full_path;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user