This is the mail archive of the
binutils-cvs@sourceware.org
mailing list for the binutils project.
[binutils-gdb] Fix invalid strcpy on unterminated buffer
- From: Andreas Schwab <schwab at sourceware dot org>
- To: bfd-cvs at sourceware dot org
- Date: 21 Aug 2018 08:34:55 -0000
- Subject: [binutils-gdb] Fix invalid strcpy on unterminated buffer
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=9dcbfff1e02778bac6fb723640724c38001a8f0a
commit 9dcbfff1e02778bac6fb723640724c38001a8f0a
Author: Andreas Schwab <schwab@suse.de>
Date: Mon Aug 20 16:55:05 2018 +0200
Fix invalid strcpy on unterminated buffer
* read.c (do_repeat_with_expander): Use memmove instead of strcpy
on unterminated string buffer.
Diff:
---
gas/ChangeLog | 5 +++++
gas/read.c | 3 ++-
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 366f4c1..5343503 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,8 @@
+2018-08-21 Andreas Schwab <schwab@suse.de>
+
+ * read.c (do_repeat_with_expander): Use memmove instead of strcpy
+ on unterminated string buffer.
+
2018-08-21 Alan Modra <amodra@gmail.com>
* config/tc-ppc.c (md_assemble): Delay counting of optional
diff --git a/gas/read.c b/gas/read.c
index 1f211b6..f011149 100644
--- a/gas/read.c
+++ b/gas/read.c
@@ -3117,7 +3117,8 @@ do_repeat_with_expander (size_t count,
sub = strstr (processed.ptr, expander);
len = sprintf (sub, "%lu", (unsigned long) count);
gas_assert (len < 8);
- strcpy (sub + len, sub + 8);
+ memmove (sub + len, sub + 8,
+ processed.ptr + processed.len - (sub + 8));
processed.len -= (8 - len);
sb_add_sb (& many, & processed);
sb_kill (& processed);