From 39334a61e63321352304cbae77b37fcba4fed662 Mon Sep 17 00:00:00 2001 From: "A. Wilcox" Date: Thu, 22 Feb 2018 12:49:49 +0000 Subject: [PATCH] Fix memory access violation when attempting to shorten a suffixed micromips instruction during lookup. PR 22014 * config/tc-mips.c (mips_lookup_insn): Use memmove to strip the instruction size suffix. --- gas/ChangeLog | 6 ++++++ gas/config/tc-mips.c | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index 07e35748611..ce7e2585950 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,9 @@ +2018-02-22 A. Wilcox + + PR 22014 + * config/tc-mips.c (mips_lookup_insn): Use memmove to strip the + instruction size suffix. + 2018-02-20 Maciej W. Rozycki * testsuite/gas/mips/mips16-branch-reloc-4.d: New test. diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c index fca0dea8dc4..6c68395094c 100644 --- a/gas/config/tc-mips.c +++ b/gas/config/tc-mips.c @@ -13955,7 +13955,7 @@ mips_lookup_insn (struct hash_control *hash, const char *start, suffix = 0; if (suffix) { - memcpy (name + opend - 2, name + opend, length - opend + 1); + memmove (name + opend - 2, name + opend, length - opend + 1); insn = (struct mips_opcode *) hash_find (hash, name); if (insn) { -- 2.39.2