From 89924a897d1cdb76750459a07e6caf460601c822 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Tue, 29 Jun 2010 00:17:38 +0200 Subject: glob: backslash escaping bug curl didn't properly handle escaping characters in a URL with the use of backslash. It did an attempt, but that failed as reported in bug 3022551. The described example was using the URL "http://example.com?{AB,C\,D}". I've now removed the special-handling of letters following the backslash and I also removed the bad extra check that triggered this particular bug. Bug: http://curl.haxx.se/bug/view.cgi?id=3022551 Reported by: Jon Sargeant --- src/urlglob.c | 23 ++--------------------- 1 file changed, 2 insertions(+), 21 deletions(-) (limited to 'src/urlglob.c') diff --git a/src/urlglob.c b/src/urlglob.c index 5f8fb2868..8435b250d 100644 --- a/src/urlglob.c +++ b/src/urlglob.c @@ -5,7 +5,7 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * - * Copyright (C) 1998 - 2009, Daniel Stenberg, , et al. + * Copyright (C) 1998 - 2010, Daniel Stenberg, , et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms @@ -75,8 +75,6 @@ static GlobCode glob_set(URLGlob *glob, char *pattern, ++glob->size; while (!done) { - bool skip; - switch (*pattern) { case '\0': /* URL ended while set was still open */ snprintf(glob->errormsg, sizeof(glob->errormsg), @@ -127,24 +125,7 @@ static GlobCode glob_set(URLGlob *glob, char *pattern, return GLOB_ERROR; case '\\': /* escaped character, skip '\' */ - switch(pattern[1]) { - case '[': - case ']': - case '{': - case '}': - case ',': - skip = TRUE; - break; - default: - skip = FALSE; - break; - } - if(skip) { - if (*(buf+1) == '\0') { /* but no escaping of '\0'! */ - snprintf(glob->errormsg, sizeof(glob->errormsg), - "illegal pattern at pos %zu\n", pos); - return GLOB_ERROR; - } + if(pattern[1]) { ++pattern; ++pos; } -- cgit v1.2.3