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
Apply sanitize_paths() to glob expansions when use chroot = no.
[rsync/rsync.git]
/
util.c
diff --git
a/util.c
b/util.c
index
e04d0d7
..
7a4fbb8
100644
(file)
--- a/
util.c
+++ b/
util.c
@@
-400,7
+400,7
@@
int lock_range(int fd, int offset, int len)
}
}
-static void glob_expand_one(char *s, char **argv, int *argc, int maxargs)
+static void glob_expand_one(char *s, char **argv, int *argc, int maxargs
, int sanitize_paths
)
{
#if !(defined(HAVE_GLOB) && defined(HAVE_GLOB_H))
if (!*s) s = ".";
{
#if !(defined(HAVE_GLOB) && defined(HAVE_GLOB_H))
if (!*s) s = ".";
@@
-413,7
+413,7
@@
static void glob_expand_one(char *s, char **argv, int *argc, int maxargs)
if (!*s) s = ".";
if (!*s) s = ".";
- argv[*argc] = strdup(s);
+ argv[*argc] = s
anitize_paths ? sanitize_path(s) : s
trdup(s);
memset(&globbuf, 0, sizeof(globbuf));
glob(argv[*argc], 0, NULL, &globbuf);
memset(&globbuf, 0, sizeof(globbuf));
glob(argv[*argc], 0, NULL, &globbuf);
@@
-432,7
+432,7
@@
static void glob_expand_one(char *s, char **argv, int *argc, int maxargs)
#endif
}
#endif
}
-void glob_expand(char *base1, char **argv, int *argc, int maxargs)
+void glob_expand(char *base1, char **argv, int *argc, int maxargs
, int sanitize_paths
)
{
char *s = argv[*argc];
char *p, *q;
{
char *s = argv[*argc];
char *p, *q;
@@
-456,11
+456,11
@@
void glob_expand(char *base1, char **argv, int *argc, int maxargs)
while ((p = strstr(q,base)) && ((*argc) < maxargs)) {
/* split it at this point */
*p = 0;
while ((p = strstr(q,base)) && ((*argc) < maxargs)) {
/* split it at this point */
*p = 0;
- glob_expand_one(q, argv, argc, maxargs);
+ glob_expand_one(q, argv, argc, maxargs
, sanitize_paths
);
q = p+strlen(base);
}
q = p+strlen(base);
}
- if (*q && (*argc < maxargs)) glob_expand_one(q, argv, argc, maxargs);
+ if (*q && (*argc < maxargs)) glob_expand_one(q, argv, argc, maxargs
, sanitize_paths
);
free(s);
free(base);
free(s);
free(base);