rprintf(F," -H, --hard-links preserve hard links\n");
rprintf(F," -p, --perms preserve permissions\n");
rprintf(F," -E, --executability preserve the file's executability\n");
- rprintf(F," --chmod=CHMOD change destination permissions\n");
+ rprintf(F," --chmod=CHMOD affect file and/or directory permissions\n");
rprintf(F," -o, --owner preserve owner (super-user only)\n");
rprintf(F," -g, --group preserve group\n");
rprintf(F," --devices preserve device files (super-user only)\n");
case OPT_EXCLUDE_FROM:
case OPT_INCLUDE_FROM:
arg = poptGetOptArg(pc);
- if (sanitize_paths) {
+ if (sanitize_paths)
arg = sanitize_path(NULL, arg, NULL, 0, NULL);
- die_on_unsafe_path((char*)arg, 0);
- }
if (server_filter_list.head) {
char *cp = strdup(arg);
if (!cp)
int i;
for (i = *argc; i-- > 0; )
(*argv)[i] = sanitize_path(NULL, (*argv)[i], "", 0, NULL);
- if (tmpdir) {
+ if (tmpdir)
tmpdir = sanitize_path(NULL, tmpdir, NULL, 0, NULL);
- die_on_unsafe_path(tmpdir, 0);
- }
- if (backup_dir) {
+ if (backup_dir)
backup_dir = sanitize_path(NULL, backup_dir, NULL, 0, NULL);
- die_on_unsafe_path(backup_dir, 0);
- }
}
if (server_filter_list.head && !am_sender) {
struct filter_list_struct *elp = &server_filter_list;
{
char *p;
int not_host;
+ int hostlen;
if (port_ptr && strncasecmp(URL_PREFIX, s, strlen(URL_PREFIX)) == 0) {
char *path;
- int hostlen;
s += strlen(URL_PREFIX);
if ((p = strchr(s, '/')) != NULL) {
hostlen = p - s;
}
if (*s == '[' && (p = strchr(s, ']')) != NULL && p[1] == ':') {
+ s++;
+ hostlen = p - s;
*p = '\0';
not_host = strchr(s, '/') || !strchr(s, ':');
*p = ']';
} else {
if (!(p = strchr(s, ':')))
return NULL;
+ hostlen = p - s;
*p = '\0';
not_host = strchr(s, '/') != NULL;
*p = ':';
return NULL;
}
- *host_ptr = new_array(char, p - s + 1);
- strlcpy(*host_ptr, s, p - s + 1);
+ *host_ptr = new_array(char, hostlen + 1);
+ strlcpy(*host_ptr, s, hostlen + 1);
if (p[1] == ':') {
if (port_ptr && !*port_ptr)