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
Define BIGPATHBUFLEN -- a roomy line-buffer that can hold a
[rsync/rsync.git]
/
flist.c
diff --git
a/flist.c
b/flist.c
index
5526e20
..
30e88ab
100644
(file)
--- a/
flist.c
+++ b/
flist.c
@@
-546,7
+546,7
@@
static struct file_struct *receive_file_entry(struct file_list *flist,
rprintf(FERROR,
"overflow: flags=0x%x l1=%d l2=%d lastname=%s\n",
flags, l1, l2, safe_fname(lastname));
rprintf(FERROR,
"overflow: flags=0x%x l1=%d l2=%d lastname=%s\n",
flags, l1, l2, safe_fname(lastname));
- overflow("receive_file_entry");
+ overflow
_exit
("receive_file_entry");
}
strlcpy(thisname, lastname, l1 + 1);
}
strlcpy(thisname, lastname, l1 + 1);
@@
-611,7
+611,7
@@
static struct file_struct *receive_file_entry(struct file_list *flist,
if (linkname_len <= 0 || linkname_len > MAXPATHLEN) {
rprintf(FERROR, "overflow: linkname_len=%d\n",
linkname_len - 1);
if (linkname_len <= 0 || linkname_len > MAXPATHLEN) {
rprintf(FERROR, "overflow: linkname_len=%d\n",
linkname_len - 1);
- overflow("receive_file_entry");
+ overflow
_exit
("receive_file_entry");
}
}
else
}
}
else
@@
-1122,7
+1122,7
@@
struct file_list *send_file_list(int f, int argc, char *argv[])
fname[1] = '\0';
} else {
if (l + 1 >= MAXPATHLEN)
fname[1] = '\0';
} else {
if (l + 1 >= MAXPATHLEN)
- overflow("send_file_list");
+ overflow
_exit
("send_file_list");
fname[l++] = '.';
fname[l] = '\0';
}
fname[l++] = '.';
fname[l] = '\0';
}
@@
-1130,7
+1130,7
@@
struct file_list *send_file_list(int f, int argc, char *argv[])
} else if (l > 1 && fname[l-1] == '.' && fname[l-2] == '.'
&& (l == 2 || fname[l-3] == '/')) {
if (l + 2 >= MAXPATHLEN)
} else if (l > 1 && fname[l-1] == '.' && fname[l-2] == '.'
&& (l == 2 || fname[l-3] == '/')) {
if (l + 2 >= MAXPATHLEN)
- overflow("send_file_list");
+ overflow
_exit
("send_file_list");
fname[l++] = '/';
fname[l++] = '.';
fname[l] = '\0';
fname[l++] = '/';
fname[l++] = '.';
fname[l] = '\0';
@@
-1159,7
+1159,7
@@
struct file_list *send_file_list(int f, int argc, char *argv[])
if (!relative_paths) {
p = strrchr(fname, '/');
if (p) {
if (!relative_paths) {
p = strrchr(fname, '/');
if (p) {
- *p =
0
;
+ *p =
'\0'
;
if (p == fname)
dir = "/";
else
if (p == fname)
dir = "/";
else
@@
-1167,10
+1167,10
@@
struct file_list *send_file_list(int f, int argc, char *argv[])
fname = p + 1;
}
} else if (implied_dirs && (p=strrchr(fname,'/')) && p != fname) {
fname = p + 1;
}
} else if (implied_dirs && (p=strrchr(fname,'/')) && p != fname) {
- /*
this ensures we send the intermediate directories,
-
thus getting their permissions right
*/
+ /*
Send the implied directories at the start of the
+
* source spec, so we get their permissions right.
*/
char *lp = lastpath, *fn = fname, *slash = fname;
char *lp = lastpath, *fn = fname, *slash = fname;
- *p =
0
;
+ *p =
'\0'
;
/* Skip any initial directories in our path that we
* have in common with lastpath. */
while (*fn && *lp == *fn) {
/* Skip any initial directories in our path that we
* have in common with lastpath. */
while (*fn && *lp == *fn) {
@@
-1185,13
+1185,13
@@
struct file_list *send_file_list(int f, int argc, char *argv[])
copy_links = copy_unsafe_links;
xfer_dirs = 1;
while ((slash = strchr(slash+1, '/')) != 0) {
copy_links = copy_unsafe_links;
xfer_dirs = 1;
while ((slash = strchr(slash+1, '/')) != 0) {
- *slash =
0
;
+ *slash =
'\0'
;
send_file_name(f, flist, fname, 0);
*slash = '/';
}
copy_links = save_copy_links;
xfer_dirs = save_xfer_dirs;
send_file_name(f, flist, fname, 0);
*slash = '/';
}
copy_links = save_copy_links;
xfer_dirs = save_xfer_dirs;
- *p =
0
;
+ *p =
'\0'
;
strlcpy(lastpath, fname, sizeof lastpath);
*p = '/';
}
strlcpy(lastpath, fname, sizeof lastpath);
*p = '/';
}
@@
-1471,8
+1471,12
@@
static void clean_flist(struct file_list *flist, int strip_root, int no_dups)
{
int i, prev_i = 0;
{
int i, prev_i = 0;
- if (!flist || flist->count == 0)
+ if (!flist)
+ return;
+ if (flist->count == 0) {
+ flist->high = -1;
return;
return;
+ }
sorting_flist = flist;
qsort(flist->files, flist->count,
sorting_flist = flist;
qsort(flist->files, flist->count,