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
Change the unpatch code for NetBSD.
[rsync/rsync.git]
/
options.c
diff --git
a/options.c
b/options.c
index
74a4279
..
5a3b246
100644
(file)
--- a/
options.c
+++ b/
options.c
@@
-613,8
+613,9
@@
static char err_buf[200];
void option_error(void)
{
if (!err_buf[0]) {
void option_error(void)
{
if (!err_buf[0]) {
- strcpy(err_buf, "Error parsing options: "
- "option may be supported on client but not on server?\n");
+ strlcpy(err_buf, "Error parsing options: option may "
+ "be supported on client but not on server?\n",
+ sizeof err_buf);
}
rprintf(FERROR, RSYNC_NAME ": %s", err_buf);
}
rprintf(FERROR, RSYNC_NAME ": %s", err_buf);
@@
-832,7
+833,9
@@
int parse_arguments(int *argc, const char ***argv, int frommain)
case OPT_DAEMON:
if (am_daemon) {
case OPT_DAEMON:
if (am_daemon) {
- strcpy(err_buf, "Attempt to hack rsync thwarted!\n");
+ strlcpy(err_buf,
+ "Attempt to hack rsync thwarted!\n",
+ sizeof err_buf);
return 0;
}
poptFreeContext(pc);
return 0;
}
poptFreeContext(pc);
@@
-902,10
+905,8
@@
int parse_arguments(int *argc, const char ***argv, int frommain)
case OPT_EXCLUDE_FROM:
case OPT_INCLUDE_FROM:
arg = poptGetOptArg(pc);
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);
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)
if (server_filter_list.head) {
char *cp = strdup(arg);
if (!cp)
@@
-1223,14
+1224,10
@@
int parse_arguments(int *argc, const char ***argv, int frommain)
int i;
for (i = *argc; i-- > 0; )
(*argv)[i] = sanitize_path(NULL, (*argv)[i], "", 0, NULL);
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);
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);
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;
}
if (server_filter_list.head && !am_sender) {
struct filter_list_struct *elp = &server_filter_list;
@@
-1397,7
+1394,7
@@
int parse_arguments(int *argc, const char ***argv, int frommain)
clean_fname(partial_dir, 1);
if (!*partial_dir || strcmp(partial_dir, ".") == 0)
partial_dir = NULL;
clean_fname(partial_dir, 1);
if (!*partial_dir || strcmp(partial_dir, ".") == 0)
partial_dir = NULL;
- else if (*partial_dir != '/') {
+ else if (*partial_dir != '/'
&& !am_server
) {
parse_rule(&filter_list, partial_dir,
MATCHFLG_NO_PREFIXES|MATCHFLG_DIRECTORY, 0);
}
parse_rule(&filter_list, partial_dir,
MATCHFLG_NO_PREFIXES|MATCHFLG_DIRECTORY, 0);
}
@@
-1505,7
+1502,7
@@
void server_options(char **args,int *argc)
argstr[x++] = 'n';
if (preserve_links)
argstr[x++] = 'l';
argstr[x++] = 'n';
if (preserve_links)
argstr[x++] = 'l';
- if (xfer_dirs > (recurse || !delete_mode || !am_sender))
+ if (xfer_dirs > (recurse || !delete_mode || !am_sender
? 1 : 0
))
argstr[x++] = 'd';
if (am_sender) {
if (keep_dirlinks)
argstr[x++] = 'd';
if (am_sender) {
if (keep_dirlinks)