summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlo Teubner <carlo.teubner@gmail.com>2010-08-28 16:19:16 -0600
committerEric Blake <eblake@redhat.com>2010-08-30 12:14:34 -0600
commit5d1faf478e162ad64075cfdc51ffca697ec7f599 (patch)
tree30e26ef4f8c7082749c46b63a7c1cb4ab4abca4c
parenta4d4f850ac5c09b9b5d9627ba748321af3429e68 (diff)
downloadm4-5d1faf478e162ad64075cfdc51ffca697ec7f599.tar.gz
Avoid a crash with bad format string.
* src/format.c (expand_format): Fix off-by-one error. Signed-off-by: Eric Blake <eblake@redhat.com>
-rw-r--r--ChangeLog5
-rw-r--r--src/format.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 0ab46319..4141f531 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2010-08-30 Carlo Teubner <carlo.teubner@gmail.com> (tiny change)
+
+ Avoid a crash with bad format string.
+ * src/format.c (expand_format): Fix off-by-one error.
+
2010-08-30 Eric Blake <eblake@redhat.com>
Document recent bug fixes.
diff --git a/src/format.c b/src/format.c
index 9cf282a7..77c7c076 100644
--- a/src/format.c
+++ b/src/format.c
@@ -302,7 +302,7 @@ expand_format (struct obstack *obs, int argc, token_data **argv)
}
c = *fmt++;
- if (c > sizeof ok || !ok[c])
+ if (sizeof ok <= c || !ok[c])
{
M4ERROR ((warning_status, 0,
"Warning: unrecognized specifier in `%s'", f));