if (!backup_suffix)
backup_suffix = backup_dir? "" : BACKUP_SUFFIX;
backup_suffix_len = strlen(backup_suffix);
+ if (strchr(backup_suffix, '/') != NULL) {
+ rprintf(FERROR, "--suffix cannot contain slashes: %s\n",
+ backup_suffix);
+ exit_cleanup(RERR_SYNTAX);
+ }
if (backup_dir)
backup_dir_len = strlen(backup_dir);
else if (!backup_suffix_len) {
/* Only send --suffix if it specifies a non-default value. */
if (strcmp(backup_suffix, backup_dir? "" : BACKUP_SUFFIX) != 0) {
- args[ac++] = "--suffix";
- args[ac++] = backup_suffix;
+ char *s = malloc(9+backup_suffix_len+1);
+ if (!s)
+ out_of_memory("server_options");
+ /* We use the following syntax to avoid weirdness with '~'. */
+ sprintf(s, "--suffix=%s", backup_suffix);
+ args[ac++] = s;
}
if (delete_mode && !delete_excluded)