Last of the cleanup before the patching starts.
[rsync/rsync.git] / sender.c
index d103b9a..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);
@@ -229,7 +230,7 @@ void send_files(struct file_list *flist, int f_out, int f_in)
                        write_int(f_out, i);
 
                        if (write_batch)
-                               write_batch_delta_file((char *)&i, sizeof(i));
+                               write_batch_delta_file((char *)&i, sizeof i);
 
                        write_sum_head(f_out, s);
                }