X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/0569a1339d14fd67bce78ef59e584571c11346ca..fa8c787d8b2b0de3d6afa5fbf72cf59cf03313b8:/receiver.c diff --git a/receiver.c b/receiver.c index e38fe5a5..82f2b0a8 100644 --- a/receiver.c +++ b/receiver.c @@ -76,7 +76,7 @@ void delete_files(struct file_list *flist) { struct file_list *local_file_list; int i, j; - char *name, fbuf[MAXPATHLEN]; + char *argv[1], fbuf[MAXPATHLEN]; extern int module_id; extern int ignore_errors; extern int max_delete; @@ -94,13 +94,13 @@ void delete_files(struct file_list *flist) if (!S_ISDIR(flist->files[j]->mode) || !(flist->files[j]->flags & FLAG_DELETE)) continue; - name = f_name_to(flist->files[j], fbuf, sizeof fbuf); + argv[0] = f_name_to(flist->files[j], fbuf); - if (!(local_file_list = send_file_list(-1,1,&name))) + if (!(local_file_list = send_file_list(-1, 1, argv))) continue; if (verbose > 1) - rprintf(FINFO,"deleting in %s\n", name); + rprintf(FINFO,"deleting in %s\n", fbuf); for (i = local_file_list->count-1; i >= 0; i--) { if (max_delete && deletion_count > max_delete) break; @@ -151,8 +151,8 @@ static int get_tmpname(char *fnametmp, char *fname) int maxname; if (tmpdir) { - strlcpy(fnametmp, tmpdir, MAXPATHLEN - 2); - length = strlen(fnametmp); + /* Note: this can't overflow, so the return value is safe */ + length = strlcpy(fnametmp, tmpdir, MAXPATHLEN - 2); fnametmp[length++] = '/'; fnametmp[length] = '\0'; /* always NULL terminated */ } @@ -336,7 +336,7 @@ int recv_files(int f_in,struct file_list *flist,char *local_name) if (local_name) fname = local_name; else - fname = f_name_to(file, fbuf, sizeof fbuf); + fname = f_name_to(file, fbuf); if (dry_run) { if (!am_server && verbose) { /* log transfer */ @@ -487,8 +487,8 @@ int recv_files(int f_in,struct file_list *flist,char *local_name) for (i = 0; i < flist->count; i++) { file = flist->files[i]; if (!file->basename || !S_ISDIR(file->mode)) continue; - recv_generator(local_name? local_name - : f_name_to(file,fbuf,sizeof fbuf), file, i, -1); + recv_generator(local_name ? local_name : f_name_to(file, fbuf), + file, i, -1); } if (verbose > 2)