From 1b2ed39c3a7ee2870f3d16a510d31e8d5916afbc Mon Sep 17 00:00:00 2001 From: Wu Heng Date: Fri, 4 Jan 2019 16:18:59 +0000 Subject: [PATCH] Fix potential buffer overrun whilst scanning macro strings. PR 24010 * macro.c (get_any_string): Check for end of input whilst scanning for separators. --- gas/ChangeLog | 6 ++++++ gas/macro.c | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index 3caf7052a7..e0a80c09c5 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,9 @@ +2019-01-04 Wu Heng + + PR 24010 + * macro.c (get_any_string): Check for end of input whilst scanning + for separators. + 2019-01-04 Wu Heng PR 24009 diff --git a/gas/macro.c b/gas/macro.c index a1a2323c5e..68ae04b010 100644 --- a/gas/macro.c +++ b/gas/macro.c @@ -369,7 +369,7 @@ get_any_string (size_t idx, sb *in, sb *out) { if (in->len > idx + 2 && in->ptr[idx + 1] == '\'' && ISBASE (in->ptr[idx])) { - while (!ISSEP (in->ptr[idx])) + while (idx < in->len && !ISSEP (in->ptr[idx])) sb_add_char (out, in->ptr[idx++]); } else if (in->ptr[idx] == '%' && macro_alternate) -- 2.34.1