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
Some improvements to the file-name cleaning code:
[rsync/rsync.git]
/
options.c
diff --git
a/options.c
b/options.c
index
d1e1ff6
..
f2d23f6
100644
(file)
--- a/
options.c
+++ b/
options.c
@@
-30,7
+30,7
@@
extern int sanitize_paths;
extern int daemon_over_rsh;
extern unsigned int module_dirlen;
extern struct filter_list_struct filter_list;
extern int daemon_over_rsh;
extern unsigned int module_dirlen;
extern struct filter_list_struct filter_list;
-extern struct filter_list_struct
server
_filter_list;
+extern struct filter_list_struct
daemon
_filter_list;
int make_backups = 0;
int make_backups = 0;
@@
-902,8
+902,10
@@
int parse_arguments(int *argc_p, const char ***argv_p)
set_refuse_options(ref);
if (am_daemon) {
set_refuse_options("log-file*");
set_refuse_options(ref);
if (am_daemon) {
set_refuse_options("log-file*");
+#ifdef ICONV_OPTION
if (!*lp_charset(module_id))
set_refuse_options("iconv");
if (!*lp_charset(module_id))
set_refuse_options("iconv");
+#endif
}
#ifdef ICONV_OPTION
}
#ifdef ICONV_OPTION
@@
-1030,8
+1032,8
@@
int parse_arguments(int *argc_p, const char ***argv_p)
case OPT_INCLUDE_FROM:
arg = poptGetOptArg(pc);
if (sanitize_paths)
case OPT_INCLUDE_FROM:
arg = poptGetOptArg(pc);
if (sanitize_paths)
- arg = sanitize_path(NULL, arg, NULL, 0);
- if (
server
_filter_list.head) {
+ arg = sanitize_path(NULL, arg, NULL, 0
, SP_DEFAULT
);
+ if (
daemon
_filter_list.head) {
int rej;
char *dir, *cp = strdup(arg);
if (!cp)
int rej;
char *dir, *cp = strdup(arg);
if (!cp)
@@
-1040,7
+1042,7
@@
int parse_arguments(int *argc_p, const char ***argv_p)
goto options_rejected;
dir = cp + (*cp == '/' ? module_dirlen : 0);
clean_fname(dir, CFN_COLLAPSE_DOT_DOT_DIRS);
goto options_rejected;
dir = cp + (*cp == '/' ? module_dirlen : 0);
clean_fname(dir, CFN_COLLAPSE_DOT_DOT_DIRS);
- rej = check_filter(&
server
_filter_list, dir, 0) < 0;
+ rej = check_filter(&
daemon
_filter_list, dir, 0) < 0;
free(cp);
if (rej)
goto options_rejected;
free(cp);
if (rej)
goto options_rejected;
@@
-1436,14
+1438,14
@@
int parse_arguments(int *argc_p, const char ***argv_p)
if (sanitize_paths) {
int i;
for (i = argc; i-- > 0; )
if (sanitize_paths) {
int i;
for (i = argc; i-- > 0; )
- argv[i] = sanitize_path(NULL, argv[i], "", 0);
+ argv[i] = sanitize_path(NULL, argv[i], "", 0
, SP_KEEP_DOT_DIRS
);
if (tmpdir)
if (tmpdir)
- tmpdir = sanitize_path(NULL, tmpdir, NULL, 0);
+ tmpdir = sanitize_path(NULL, tmpdir, NULL, 0
, SP_DEFAULT
);
if (backup_dir)
if (backup_dir)
- backup_dir = sanitize_path(NULL, backup_dir, NULL, 0);
+ backup_dir = sanitize_path(NULL, backup_dir, NULL, 0
, SP_DEFAULT
);
}
}
- if (
server
_filter_list.head && !am_sender) {
- struct filter_list_struct *elp = &
server
_filter_list;
+ if (
daemon
_filter_list.head && !am_sender) {
+ struct filter_list_struct *elp = &
daemon
_filter_list;
if (tmpdir) {
char *dir;
if (!*tmpdir)
if (tmpdir) {
char *dir;
if (!*tmpdir)
@@
-1648,14
+1650,14
@@
int parse_arguments(int *argc_p, const char ***argv_p)
}
} else {
if (sanitize_paths)
}
} else {
if (sanitize_paths)
- files_from = sanitize_path(NULL, files_from, NULL, 0);
- if (
server
_filter_list.head) {
+ files_from = sanitize_path(NULL, files_from, NULL, 0
, SP_DEFAULT
);
+ if (
daemon
_filter_list.head) {
char *dir;
if (!*files_from)
goto options_rejected;
dir = files_from + (*files_from == '/' ? module_dirlen : 0);
clean_fname(dir, CFN_COLLAPSE_DOT_DOT_DIRS);
char *dir;
if (!*files_from)
goto options_rejected;
dir = files_from + (*files_from == '/' ? module_dirlen : 0);
clean_fname(dir, CFN_COLLAPSE_DOT_DOT_DIRS);
- if (check_filter(&
server
_filter_list, dir, 0) < 0)
+ if (check_filter(&
daemon
_filter_list, dir, 0) < 0)
goto options_rejected;
}
filesfrom_fd = open(files_from, O_RDONLY|O_BINARY);
goto options_rejected;
}
filesfrom_fd = open(files_from, O_RDONLY|O_BINARY);