diff options
author | Wu Heng <wu.heng@zte.com.cn> | 2019-01-04 16:18:59 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2019-01-04 16:18:59 +0000 |
commit | 1b2ed39c3a7ee2870f3d16a510d31e8d5916afbc (patch) | |
tree | 927a97088ca66510ff584d58ba37ff2ab15f8c93 | |
parent | bdfb4455977ffdd2d3f8dc81f25f6ba1ea2a7f49 (diff) | |
download | gdb-1b2ed39c3a7ee2870f3d16a510d31e8d5916afbc.zip gdb-1b2ed39c3a7ee2870f3d16a510d31e8d5916afbc.tar.gz gdb-1b2ed39c3a7ee2870f3d16a510d31e8d5916afbc.tar.bz2 |
Fix potential buffer overrun whilst scanning macro strings.
PR 24010
* macro.c (get_any_string): Check for end of input whilst scanning
for separators.
-rw-r--r-- | gas/ChangeLog | 6 | ||||
-rw-r--r-- | gas/macro.c | 2 |
2 files changed, 7 insertions, 1 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 3caf705..e0a80c0 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,5 +1,11 @@ 2019-01-04 Wu Heng <wu.heng@zte.com.cn> + PR 24010 + * macro.c (get_any_string): Check for end of input whilst scanning + for separators. + +2019-01-04 Wu Heng <wu.heng@zte.com.cn> + PR 24009 * read.c (stringer): Fix handling of missing '>' character at end of <...> sequence. diff --git a/gas/macro.c b/gas/macro.c index a1a2323..68ae04b 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) |