Don't create a pathname that has two leading slashes (which we used
authorWayne Davison <wayned@samba.org>
Tue, 17 Feb 2004 21:57:44 +0000 (21:57 +0000)
committerWayne Davison <wayned@samba.org>
Tue, 17 Feb 2004 21:57:44 +0000 (21:57 +0000)
to do when the root of the transfer was "/").

sender.c

index e73ae62..51ceff4 100644 (file)
--- a/sender.c
+++ b/sender.c
@@ -157,10 +157,11 @@ void send_files(struct file_list *flist, int f_out, int f_in)
                stats.num_transferred_files++;
                stats.total_transferred_size += file->length;
 
-               fname[0] = 0;
                if (file->basedir) {
-                       offset = stringjoin(fname, sizeof fname,
-                                           file->basedir, "/", NULL);
+                       /* N.B. We're sure that this fits, so offset is OK. */
+                       offset = strlcpy(fname, file->basedir, sizeof fname);
+                       if (!offset || fname[offset-1] != '/')
+                               fname[offset++] = '/';
                } else
                        offset = 0;
                f_name_to(file, fname + offset);