m4-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[SCM] GNU M4 source repository branch, master, updated. cvs-readonly-272


From: Gary V. Vaughan
Subject: [SCM] GNU M4 source repository branch, master, updated. cvs-readonly-272-ge651af0
Date: Tue, 17 Sep 2013 15:56:24 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU M4 source repository".

http://git.sv.gnu.org/gitweb/?p=m4.git;a=commitdiff;h=e651af07a6e61976af131dba3d028bcf73312a6e

The branch, master has been updated
       via  e651af07a6e61976af131dba3d028bcf73312a6e (commit)
       via  0deacea8902c00062fdc91ee67ce137a87a647a1 (commit)
       via  0fefaa2219724ceaa56c4eb30a9ce99a635cc071 (commit)
       via  2fb0cd6641e3223474ac2487605938cfafc7f540 (commit)
       via  95d7405a7540f91f67a505fa6458bde3d8e31f79 (commit)
       via  37ea22baf81a4e3fc0896e3d6ac23d821ab1aa76 (commit)
       via  20fed4bd1a58faf82c06ac9864db82a9dc74f0b4 (commit)
       via  9f4537ee1c703e7498f9213bf96b2163b0892712 (commit)
      from  937ad974a4be5801fc9d29b10bd780afb44b02b3 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit e651af07a6e61976af131dba3d028bcf73312a6e
Author: Eric Blake <address@hidden>
Date:   Thu Oct 21 12:24:30 2010 -0600

    build: work around glibc and libsigsegv bugs
    
    * docs/m4.texinfo (Index macro): Expose strstr bug.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 0deacea8902c00062fdc91ee67ce137a87a647a1
Author: Eric Blake <address@hidden>
Date:   Thu Oct 21 11:44:48 2010 -0600

    docs: mention more history
    
    * doc/m4.texinfo (History): Add upcoming 1.4.16 release.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 0fefaa2219724ceaa56c4eb30a9ce99a635cc071
Author: Eric Blake <address@hidden>
Date:   Mon Aug 30 15:52:27 2010 -0600

    maint: clean up compiler warnings.
    
    * modules/evalparse.c (unary_term): Likewise.
    * m4/input.c (match_input): Likewise.  Also drop useless casts to
    void.
    
    Signed-off-by: Gary V. Vaughan <address@hidden>

commit 2fb0cd6641e3223474ac2487605938cfafc7f540
Author: Gary V. Vaughan <address@hidden>
Date:   Tue Sep 17 21:26:23 2013 +0700

    m4: avoid spurious output with unrecognized format specifiers.
    
    * modules/format.c (format): Advance the loop invariants past an
    unrecognized format specifier to avoid printing the specifier
    character on the next pass.
    * doc/m4.texi (Format): Don't expect unrecognized specifiers to
    be output by format macro.
    * tests/null.out: Don't expect unrecognized null specifier to be
    output.
    * tests/generate.awk (new_test): Treat `ignore' in expected error
    output the same as Autotest.
    * doc/m4.texi (Format): Use special `ignore' string rather than
    unsupported @comment xerr magic.
    
    Signed-off-by: Gary V. Vaughan <address@hidden>

commit 95d7405a7540f91f67a505fa6458bde3d8e31f79
Author: Carlo Teubner <address@hidden>
Date:   Sat Aug 28 16:19:16 2010 -0600

    m4: avoid a crash with bad format string.
    
    * src/format.c (expand_format): Fix off-by-one error.
    * THANKS: Add Carlo Teubner.
    
    Copyright-paperwork-exempt: Yes
    Signed-off-by: Eric Blake <address@hidden>

commit 37ea22baf81a4e3fc0896e3d6ac23d821ab1aa76
Author: Eric Blake <address@hidden>
Date:   Mon Aug 30 12:08:47 2010 -0600

    maint: test bad format string crash.
    
    * doc/m4.texi (Format): Add a test.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 20fed4bd1a58faf82c06ac9864db82a9dc74f0b4
Author: Gary V. Vaughan <address@hidden>
Date:   Tue Sep 17 20:21:28 2013 +0700

    maint: import release notes from branch-1.4.
    
    * NEWS: Add entries from releases 1.4.15 thru 1.4.17.
    
    Signed-off-by: Gary V. Vaughan <address@hidden>

commit 9f4537ee1c703e7498f9213bf96b2163b0892712
Author: Eric Blake <address@hidden>
Date:   Thu Jul 29 07:25:33 2010 -0600

    gnulib: fix use of link libraries.
    
    * Makefile.am (m4_LDADD): Update link libraries accordingly.
    * THANKS: Update.
    Reported by Rainer Tammer.
    
    Signed-off-by: Eric Blake <address@hidden>

-----------------------------------------------------------------------

Summary of changes:
 Makefile.am         |    2 +-
 NEWS                |   57 ++++++++++++++++++++++++++++++++++++++------------
 THANKS              |    4 ++-
 doc/m4.texi         |   30 +++++++++++++++++++++++++-
 m4/input.c          |    2 +-
 modules/evalparse.c |    3 +-
 modules/format.c    |    7 +++++-
 tests/generate.awk  |    3 ++
 tests/null.out      |  Bin 632 -> 631 bytes
 9 files changed, 86 insertions(+), 22 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index 68c5efc..924aeb0 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -118,7 +118,7 @@ src_m4_SOURCES += src/stackovf.c
 endif
 src_m4_CPPFLAGS        = $(AM_CPPFLAGS) -Isrc -I$(srcdir)/src
 src_m4_LDFLAGS = $(AM_LDFLAGS) $(DLPREOPEN)
-src_m4_LDADD   = m4/libm4.la $(LTLIBICONV)
+src_m4_LDADD   = m4/libm4.la $(LTLIBICONV) $(LTLIBTHREAD)
 src_m4_DEPENDENCIES = $(PREOPEN_DEPENDENCIES) m4/libm4.la
 
 ##                                                                      ##
diff --git a/NEWS b/NEWS
index 1281504..09f7103 100644
--- a/NEWS
+++ b/NEWS
@@ -323,25 +323,32 @@ promoted to 2.0.
 
 ** A number of portability improvements inherited from gnulib.
 
-* Noteworthy changes in Version 1.4.10b (2008-02-25) [beta]
-  Released by Eric Blake, based on git version 1.4.10a
+* Noteworthy changes in release 1.4.17 (2013-09-17) [stable]
 
-Note that M4 1.4.10b was released prior to 1.4.11, and includes all the
-features of 1.4.11 except for C99 parsing in the `format' builtin.  It also
-contains the following beta features that were deemed worth deferring until
-1.6:
+** Fix compilation with newer glibc headers.
 
-** Further enhance the `index' builtin to often achieve sublinear results.
+** Fix a failure with diverting large amounts of text on mingw (does
+   not affect platforms that can rename an open file).
 
-** Enhance the `regexp' and `patsubst' builtins to cache frequently used
-   regular expressions, which speeds up typical Autoconf usage.
+** A number of portability improvements inherited from gnulib.
 
-** Enhance the `format' builtin to warn for more suspicious usages, such as
-   missing arguments or problems parsing according to the format string.
 
-** Enhance the `ifelse' and `shift' builtins so that tail-recursive
-   algorithms based on `$@' operate in linear, rather than quadratic, time
-   and memory.
+* Noteworthy changes in release 1.4.16 (2011-03-01) [stable]
+
+** Fix regressions in the `index' builtin.  On glibc platforms, this
+   avoids false positives from a strstr bug in glibc 2.9 through 2.12;
+   on many other platforms, it fixes two separate regressions, a false
+   positive introduced in 1.4.11 and a false negative in 1.4.15.
+
+** A number of portability improvements inherited from gnulib.
+
+
+* Noteworthy changes in release 1.4.15 (2010-08-31) [stable]
+
+** Fix regression introduced in 1.4.9b where the `format' builtin could
+   crash on an invalid format string.
+
+** Fix compilation against newer glibc, and on AIX 7.1BETA.
 
 ** A number of portability improvements inherited from gnulib.
 
@@ -453,6 +460,28 @@ contains the following beta features that were deemed 
worth deferring until
 
 ** A number of portability improvements inherited from gnulib.
 
+* Noteworthy changes in Version 1.4.10b (2008-02-25) [beta]
+  Released by Eric Blake, based on git version 1.4.10a
+
+Note that M4 1.4.10b was released prior to 1.4.11, and includes all the
+features of 1.4.11 except for C99 parsing in the `format' builtin.  It also
+contains the following beta features that were deemed worth deferring until
+1.6:
+
+** Further enhance the `index' builtin to often achieve sublinear results.
+
+** Enhance the `regexp' and `patsubst' builtins to cache frequently used
+   regular expressions, which speeds up typical Autoconf usage.
+
+** Enhance the `format' builtin to warn for more suspicious usages, such as
+   missing arguments or problems parsing according to the format string.
+
+** Enhance the `ifelse' and `shift' builtins so that tail-recursive
+   algorithms based on `$@' operate in linear, rather than quadratic, time
+   and memory.
+
+** A number of portability improvements inherited from gnulib.
+
 * Noteworthy changes in Version 1.4.10 (2007-07-09) [stable]
   Released by Eric Blake, based on CVS version 1.4.9c
 
diff --git a/THANKS b/THANKS
index b8f0fc3..62c1b74 100644
--- a/THANKS
+++ b/THANKS
@@ -30,6 +30,7 @@ Brendan Kehoe           address@hidden
 Brian J. Fox            address@hidden
 Brian D. Carlstrom      address@hidden
 Bruno Haible            address@hidden
+Carlo Teubner           address@hidden
 Cesar Strauss           address@hidden
 Charles Wilson          address@hidden
 Chris McGuire           address@hidden
@@ -119,6 +120,7 @@ Pete Chown              address@hidden
 Pierre Gaumond          address@hidden
 Pierre Mathieu          address@hidden
 Rafael Corvalan         address@hidden
+Rainer Tammer           address@hidden
 Ralf Wildenhues         address@hidden
 René Seindal            address@hidden
 Richard A Nelson        address@hidden
@@ -144,7 +146,7 @@ Terry Jones             address@hidden
 Thomas Klausner         address@hidden
 Thomas Tanner           address@hidden
 Thorsten Ohl            address@hidden
-Todd Rinaldo           address@hidden
+Todd Rinaldo            address@hidden
 Tom G. Christensen      address@hidden
 Tom McConnell           address@hidden
 Tom Quinn               address@hidden
diff --git a/doc/m4.texi b/doc/m4.texi
index 5a31eec..dbda71b 100644
--- a/doc/m4.texi
+++ b/doc/m4.texi
@@ -417,7 +417,10 @@ released 1.4.3 and 1.4.4.  And in 2006, Eric Blake joined 
the team and
 prepared patches for the release of 1.4.5, 1.4.6, 1.4.7, and 1.4.8.
 More bug fixes were incorporated in 2007, with releases 1.4.9 and
 1.4.10.  Eric continued with some portability fixes for 1.4.11 and
-1.4.12 in 2008, and 1.4.13 in 2009.
+1.4.12 in 2008, 1.4.13 in 2009, 1.4.14, 1.4.15 and 1.4.16 in 2010.
+Following a long hiatus, Gary released 1.4.17 after upgrading to the
+latest autotools (and gnulib) along with all the small fixes they had
+accumulated.
 
 Additionally, in 2008, Eric rewrote the scanning engine to reduce
 recursive evaluation from quadratic to linear complexity.  This was
@@ -6885,6 +6888,17 @@ index(`abc', `bc', `-4')
 @result{}1
 @end example
 
address@hidden
address@hidden Expose a bug in the strstr() algorithm present in glibc
address@hidden 2.9 through 2.12 and in gnulib up to Sep 2010.
+
address@hidden
+index(`;:11-:12-:12-:12-:12-:12-:12-:12-:12.:12.:12.:12.:12.:12.:12.:12.:12-:',
+`:12-:12-:12-:12-:12-:12-:12-:12-')
address@hidden
address@hidden example
address@hidden ignore
+
 @node Regexp
 @section Searching for regular expressions
 
@@ -7512,7 +7526,7 @@ Likewise, escape sequences are not yet recognized.
 @example
 format(`%p', `0')
 @error{}m4:stdin:1: warning: format: unrecognized specifier in '%p'
address@hidden
address@hidden
 format(`%*d', `')
 @error{}m4:stdin:2: warning: format: empty string treated as 0
 @error{}m4:stdin:2: warning: format: too few arguments: 2 < 3
@@ -7522,6 +7536,18 @@ format(`%.1f', `2a')
 @result{}2.0
 @end example
 
address@hidden
address@hidden Expose a crash with a bad format string fixed in 1.4.15.
address@hidden Unfortunately, 8-bit bytes are hard to check for; but the
address@hidden exit status is enough to sniff the crash in broken versions.
+
address@hidden
+format(`%'format(`%c', `128'))
address@hidden
address@hidden
address@hidden example
address@hidden ignore
+
 @node Arithmetic
 @chapter Macros for doing arithmetic
 
diff --git a/m4/input.c b/m4/input.c
index 3804b66..f9e75e9 100644
--- a/m4/input.c
+++ b/m4/input.c
@@ -1625,7 +1625,7 @@ match_input (m4 *context, const char *s, size_t len, bool 
consume)
     }
 
   next_char (context, false, false, false);
-  for (n = 1, t = s++; (ch = peek_char (context, false)) == to_uchar (*s++); )
+  for (n = 1, t = s++; peek_char (context, false) == to_uchar (*s++); )
     {
       next_char (context, false, false, false);
       n++;
diff --git a/modules/evalparse.c b/modules/evalparse.c
index 574541e..166ad5c 100644
--- a/modules/evalparse.c
+++ b/modules/evalparse.c
@@ -828,12 +828,11 @@ exp_term (m4 *context, eval_token et, number *v1)
 static eval_error
 unary_term (m4 *context, eval_token et, number *v1)
 {
-  eval_token et2 = et;
   eval_error er;
 
   if (et == PLUS || et == MINUS || et == NOT || et == LNOT)
     {
-      et2 = eval_lex (v1);
+      eval_token et2 = eval_lex (v1);
       if (et2 == ERROR)
         return UNKNOWN_INPUT;
 
diff --git a/modules/format.c b/modules/format.c
index b772290..92e2d47 100644
--- a/modules/format.c
+++ b/modules/format.c
@@ -333,11 +333,16 @@ format (m4 *context, m4_obstack *obs, int argc, 
m4_macro_args *argv)
         }
 
       c = *fmt;
-      if (c > sizeof ok || !ok[c] || !f_len)
+      if (sizeof ok <= c || !ok[c] || !f_len)
         {
           m4_warn (context, 0, me, _("unrecognized specifier in %s"),
                    quotearg_style_mem (locale_quoting_style, f, M4ARGLEN (1)));
           valid_format = false;
+          if (f_len > 0)
+            {
+              fmt++;
+              f_len--;
+            }
           continue;
         }
       fmt++;
diff --git a/tests/generate.awk b/tests/generate.awk
index 6dcddf4..ab25661 100755
--- a/tests/generate.awk
+++ b/tests/generate.awk
@@ -170,6 +170,9 @@ function new_test(input, status, output, error, options, 
xfail, examples) {
   output = normalize(output);
   error = normalize(error);
 
+  if (error == "ignore\n")
+    error = "ignore";
+
   if (options ~ / (import|load|modtest|mpeval|perl|shadow|stdlib|time)/)
     printf ("AT_CHECK_DYNAMIC_MODULE\n");
   if (options ~ / mpeval/)
diff --git a/tests/null.out b/tests/null.out
index 993d9fe..784ab7a 100644
Binary files a/tests/null.out and b/tests/null.out differ


hooks/post-receive
-- 
GNU M4 source repository



reply via email to

[Prev in Thread] Current Thread [Next in Thread]