From c0e18e5ed018bb61dcd106bfeebf7dd923053b3f Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Tue, 27 Apr 1999 09:01:47 +0000 Subject: (internal_fnmatch): Correctly reset string pointer in case of an invalid [[: expression. --- posix/fnmatch.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/posix/fnmatch.c b/posix/fnmatch.c index d31c375bd2..b147f47d36 100644 --- a/posix/fnmatch.c +++ b/posix/fnmatch.c @@ -130,7 +130,9 @@ extern int errno; /* Match STRING against the filename pattern PATTERN, returning zero if it matches, nonzero if not. */ static int +#ifdef _LIBC internal_function +#endif internal_fnmatch (const char *pattern, const char *string, int no_leading_period, int flags) { @@ -295,6 +297,7 @@ internal_fnmatch (const char *pattern, const char *string, # if defined _LIBC || (defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H) wctype_t wt; # endif + char *startp = p; for (;;) { @@ -313,7 +316,7 @@ internal_fnmatch (const char *pattern, const char *string, { /* This cannot possibly be a character class name. Match it as a normal range. */ - --p; + p = startp; c = '['; goto normal_bracket; } -- cgit v1.2.3