diff -r 000000000000 -r eeea35fbf182 patches/glibc/2.1.3/rh62-08-glibc-2.1.3-glob.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/glibc/2.1.3/rh62-08-glibc-2.1.3-glob.patch Sat Feb 24 11:00:05 2007 +0000 @@ -0,0 +1,57 @@ +2001-11-29 Jakub Jelinek + + * sysdeps/generic/glob.c (next_brace_sub): Return NULL if braces + don't match, fix {{a,b},c} globbing, clean up. + Patch by Flavio Veloso . + +--- libc/sysdeps/generic/glob.c.jj Thu Aug 23 18:49:29 2001 ++++ libc/sysdeps/generic/glob.c Thu Nov 29 13:17:21 2001 +@@ -355,42 +355,14 @@ static + inline + #endif + const char * +-next_brace_sub (begin) +- const char *begin; ++next_brace_sub (cp) ++ const char *cp; + { + unsigned int depth = 0; +- const char *cp = begin; +- +- while (1) +- { +- if (depth == 0) +- { +- if (*cp != ',' && *cp != '}' && *cp != '\0') +- { +- if (*cp == '{') +- ++depth; +- ++cp; +- continue; +- } +- } +- else +- { +- while (*cp != '\0' && (*cp != '}' || depth > 0)) +- { +- if (*cp == '}') +- --depth; +- ++cp; +- } +- if (*cp == '\0') +- /* An incorrectly terminated brace expression. */ +- return NULL; +- +- continue; +- } +- break; +- } +- +- return cp; ++ while (*cp != '\0' && (*cp != '}' || depth--) && (*cp != ',' || depth)) ++ if (*cp++ == '{') ++ depth++; ++ return *cp != '\0' ? cp : NULL; + } + + #endif /* !GLOB_ONLY_P */