diff options
author | Ulrich Drepper <drepper@redhat.com> | 1999-04-27 09:01:47 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1999-04-27 09:01:47 +0000 |
commit | c0e18e5ed018bb61dcd106bfeebf7dd923053b3f (patch) | |
tree | 49ac3d26f147a0da500b799b8f1aeb5580db84a5 /posix | |
parent | 8a495c09224fe1170d6d3725ead86bf3a6f7cf00 (diff) | |
download | glibc-c0e18e5ed018bb61dcd106bfeebf7dd923053b3f.zip glibc-c0e18e5ed018bb61dcd106bfeebf7dd923053b3f.tar.gz glibc-c0e18e5ed018bb61dcd106bfeebf7dd923053b3f.tar.bz2 |
(internal_fnmatch): Correctly reset string pointer in case of an invalid [[: expression.
Diffstat (limited to 'posix')
-rw-r--r-- | posix/fnmatch.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/posix/fnmatch.c b/posix/fnmatch.c index d31c375..b147f47 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; } |