From b389939f874b44b27030f25b77e4ae8f1149c217 Mon Sep 17 00:00:00 2001 From: David Dykstra Date: Tue, 17 Nov 1998 21:56:18 +0000 Subject: [PATCH] Apply sanitize_paths() to glob expansions when use chroot = no. --- clientserver.c | 2 +- util.c | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/clientserver.c b/clientserver.c index 809d16bc..7dee5441 100644 --- a/clientserver.c +++ b/clientserver.c @@ -253,7 +253,7 @@ static int rsync_module(int fd, int i) request = strdup(p); start_glob++; } - glob_expand(name, argv, &argc, MAX_ARGS); + glob_expand(name, argv, &argc, MAX_ARGS, !use_chroot); } else { argc++; } diff --git a/util.c b/util.c index e04d0d78..7a4fbb8b 100644 --- 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 = "."; @@ -413,7 +413,7 @@ static void glob_expand_one(char *s, char **argv, int *argc, int maxargs) if (!*s) s = "."; - argv[*argc] = strdup(s); + argv[*argc] = sanitize_paths ? sanitize_path(s) : strdup(s); 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 } -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; @@ -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; - glob_expand_one(q, argv, argc, maxargs); + glob_expand_one(q, argv, argc, maxargs, sanitize_paths); 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); -- 2.34.1