aboutsummaryrefslogtreecommitdiffstats
path: root/fs/cifs/dir.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/cifs/dir.c')
-rw-r--r--fs/cifs/dir.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/cifs/dir.c b/fs/cifs/dir.c
index 3b7e0c1266f7..8719bbe0dcc3 100644
--- a/fs/cifs/dir.c
+++ b/fs/cifs/dir.c
@@ -48,7 +48,7 @@ char *
48cifs_build_path_to_root(struct smb_vol *vol, struct cifs_sb_info *cifs_sb, 48cifs_build_path_to_root(struct smb_vol *vol, struct cifs_sb_info *cifs_sb,
49 struct cifs_tcon *tcon) 49 struct cifs_tcon *tcon)
50{ 50{
51 int pplen = vol->prepath ? strlen(vol->prepath) : 0; 51 int pplen = vol->prepath ? strlen(vol->prepath) + 1 : 0;
52 int dfsplen; 52 int dfsplen;
53 char *full_path = NULL; 53 char *full_path = NULL;
54 54
@@ -69,7 +69,8 @@ cifs_build_path_to_root(struct smb_vol *vol, struct cifs_sb_info *cifs_sb,
69 69
70 if (dfsplen) 70 if (dfsplen)
71 strncpy(full_path, tcon->treeName, dfsplen); 71 strncpy(full_path, tcon->treeName, dfsplen);
72 strncpy(full_path + dfsplen, vol->prepath, pplen); 72 full_path[dfsplen] = CIFS_DIR_SEP(cifs_sb);
73 strncpy(full_path + dfsplen + 1, vol->prepath, pplen);
73 convert_delimiter(full_path, CIFS_DIR_SEP(cifs_sb)); 74 convert_delimiter(full_path, CIFS_DIR_SEP(cifs_sb));
74 full_path[dfsplen + pplen] = 0; /* add trailing null */ 75 full_path[dfsplen + pplen] = 0; /* add trailing null */
75 return full_path; 76 return full_path;