changeset 17444:a83ad7365d40

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>.
author Paul Eggert <eggert@cs.ucla.edu>
date Sat, 06 Jul 2013 17:12:29 -0700
parents a3a1becd3318
children 6b7c1e9c98d6
files ChangeLog lib/fnmatch_loop.c
diffstat 2 files changed, 8 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- 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.
--- a/lib/fnmatch_loop.c
+++ b/lib/fnmatch_loop.c
@@ -227,6 +227,8 @@
             c = *p++;
             for (;;)
               {
+		bool is_range = false;
+
                 if (!(flags & FNM_NOESCAPE) && c == L_('\\'))
                   {
                     if (*p == L_('\0'))
@@ -420,8 +422,6 @@
                   }
                 else
                   {
-                    bool is_range = false;
-
 #ifdef _LIBC
                     bool is_seqval = false;