fnmatch: don't goto over declaration
authorPaul Eggert <eggert@cs.ucla.edu>
Sun, 7 Jul 2013 00:12:29 +0000 (17:12 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Sun, 7 Jul 2013 00:12:51 +0000 (17:12 -0700)
* lib/fnmatch_loop.c (FCT): Hoist local up one level, to avoid
undefined behavior for goto over a declaration.
Problem reported by Charlie Brown in
<http://lists.gnu.org/archive/html/bug-gnulib/2013-07/msg00009.html>.

ChangeLog
lib/fnmatch_loop.c

index f714711..7698099 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2013-07-06  Paul Eggert  <eggert@cs.ucla.edu>
 
+       fnmatch: don't goto over declaration
+       * lib/fnmatch_loop.c (FCT): Hoist local up one level, to avoid
+       undefined behavior for goto over a declaration.
+       Problem reported by Charlie Brown in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-07/msg00009.html>.
+
        pipe2: decouple from binary-io a bit
        This is for Emacs, which needs pipe2 but not binary-io.
        * lib/pipe2.c [!GNULIB_BINARY_IO]: Don't include binary-io.h.
index 1953302..c303de2 100644 (file)
@@ -227,6 +227,8 @@ FCT (const CHAR *pattern, const CHAR *string, const CHAR *string_end,
             c = *p++;
             for (;;)
               {
+               bool is_range = false;
+
                 if (!(flags & FNM_NOESCAPE) && c == L_('\\'))
                   {
                     if (*p == L_('\0'))
@@ -420,8 +422,6 @@ FCT (const CHAR *pattern, const CHAR *string, const CHAR *string_end,
                   }
                 else
                   {
-                    bool is_range = false;
-
 #ifdef _LIBC
                     bool is_seqval = false;