diff options
author | Carlo Teubner <carlo.teubner@gmail.com> | 2010-08-28 16:19:16 -0600 |
---|---|---|
committer | Eric Blake <eblake@redhat.com> | 2010-08-30 12:14:34 -0600 |
commit | 5d1faf478e162ad64075cfdc51ffca697ec7f599 (patch) | |
tree | 30e26ef4f8c7082749c46b63a7c1cb4ab4abca4c | |
parent | a4d4f850ac5c09b9b5d9627ba748321af3429e68 (diff) | |
download | m4-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-- | ChangeLog | 5 | ||||
-rw-r--r-- | src/format.c | 2 |
2 files changed, 6 insertions, 1 deletions
@@ -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)); |