Just for fun, I ran smatch (http://smatch.sourceforge.net/) on the m4
code. The only legitimate issue it found is fixed by this patch:

diff --git a/modules/format.c b/modules/format.c
index b772290..2787154 100644
--- a/modules/format.c
+++ b/modules/format.c
@@ -333,7 +333,7 @@ format (m4 *context, m4_obstack *obs, int argc,
m4_macro_args *argv)
         }

       c = *fmt;
-      if (c > sizeof ok || !ok[c] || !f_len)
+      if (c >= sizeof ok || !ok[c] || !f_len)
         {
           m4_warn (context, 0, me, _("unrecognized specifier in %s"),
                    quotearg_style_mem (locale_quoting_style, f, M4ARGLEN (1)));

If haven't tested it but it seems fairly clear to me.

This issue exists both in latest git version (to which this patch
applies) and 1.4.14.

Cheers,
Carlo

_______________________________________________
M4-patches mailing list
M4-patches@gnu.org
http://lists.gnu.org/mailman/listinfo/m4-patches

Reply via email to