Matt McCutchen's Web Site
/
rsync
/
rsync.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Improved the "use chroot" section to mention how to get user/group
[rsync/rsync.git]
/
receiver.c
diff --git
a/receiver.c
b/receiver.c
index
246caea
..
82f2b0a
100644
(file)
--- 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;
{
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;
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;
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)
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;
for (i = local_file_list->count-1; i >= 0; i--) {
if (max_delete && deletion_count > max_delete) break;
@@
-151,6
+151,7
@@
static int get_tmpname(char *fnametmp, char *fname)
int maxname;
if (tmpdir) {
int maxname;
if (tmpdir) {
+ /* 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 */
length = strlcpy(fnametmp, tmpdir, MAXPATHLEN - 2);
fnametmp[length++] = '/';
fnametmp[length] = '\0'; /* always NULL terminated */
@@
-335,7
+336,7
@@
int recv_files(int f_in,struct file_list *flist,char *local_name)
if (local_name)
fname = local_name;
else
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 */
if (dry_run) {
if (!am_server && verbose) { /* log transfer */
@@
-486,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;
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)
}
if (verbose > 2)