From: Paul Eggert Date: Sun, 7 Jul 2013 00:12:29 +0000 (-0700) Subject: fnmatch: don't goto over declaration X-Git-Tag: v0.1~96 X-Git-Url: http://erislabs.org.uk/gitweb/?a=commitdiff_plain;h=c96bab3fee48a9df55e7366344f838e1fc785c28;p=gnulib.git 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 . --- diff --git a/ChangeLog b/ChangeLog index f714711ab..7698099fc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2013-07-06 Paul Eggert + 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 + . + 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. diff --git a/lib/fnmatch_loop.c b/lib/fnmatch_loop.c index 1953302aa..c303de2a1 100644 --- a/lib/fnmatch_loop.c +++ b/lib/fnmatch_loop.c @@ -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;