Skip to content

Commit

Permalink
cifs: fix build_unc_path_to_root to account for a prefixpath
Browse files Browse the repository at this point in the history
Regression introduced by commit f87d39d.

Signed-off-by: Jeff Layton <jlayton@redhat.com>
Reviewed-by: Pavel Shilovsky <piastryyy@gmail.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
  • Loading branch information
Jeff Layton authored and Steve French committed Jul 6, 2011
1 parent 677d853 commit b2a0fa1
Showing 1 changed file with 15 additions and 6 deletions.
21 changes: 15 additions & 6 deletions fs/cifs/connect.c
Original file line number Diff line number Diff line change
Expand Up @@ -2855,19 +2855,28 @@ cifs_cleanup_volume_info(struct smb_vol **pvolume_info)
/* build_path_to_root returns full path to root when
* we do not have an exiting connection (tcon) */
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)
{
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 + 1, GFP_KERNEL);
full_path = kmalloc(unc_len + pplen + 1, GFP_KERNEL);
if (full_path == NULL)
return ERR_PTR(-ENOMEM);

strncpy(full_path, volume_info->UNC, unc_len);
full_path[unc_len] = 0; /* add trailing null */
strncpy(full_path, vol->UNC, unc_len);
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));
cFYI(1, "%s: full_path=%s", __func__, full_path);
return full_path;
}

Expand Down

0 comments on commit b2a0fa1

Please sign in to comment.