tc-cr16.c: Use memmove to concatenate 2 overlapping strings
authorH.J. Lu <hjl.tools@gmail.com>
Tue, 26 May 2020 02:29:22 +0000 (19:29 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Tue, 26 May 2020 02:39:13 +0000 (19:39 -0700)
PR gas/26041
* config/tc-cr16.c (md_assemble): Use memmove to concatenate
2 overlapping strings.

gas/ChangeLog
gas/config/tc-cr16.c

index 96c78092a04e84f85428f07cd5f1217d6167f0e0..7aba149af9c656dcde9f6ab5f9256a4ead3fbcb6 100644 (file)
@@ -1,3 +1,9 @@
+2020-05-25  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR gas/26041
+       * config/tc-cr16.c (md_assemble): Use memmove to concatenate
+       2 overlapping strings.
+
 2020-05-25  H.J. Lu  <hongjiu.lu@intel.com>
 
        * config/tc-cr16.c (md_convert_frag): Replace fragP->fr_literal
index 901838398ecd38af97a00230b77a1a976f8c4883..951e9ac7f38ec558f56236fa84ad10f3f69ce3dc 100644 (file)
@@ -2560,8 +2560,11 @@ md_assemble (char *op)
   if (streq ("cinv", op))
     {
      /* Validate the cinv options.  */
+      unsigned int op_len, param_len;
       check_cinv_options (param);
-      strcat (op, param);
+      op_len = strlen (op);
+      param_len = strlen (param) + 1;
+      memmove (op + op_len, param, param_len);
     }
 
   /* MAPPING - SHIFT INSN, if imm4/imm16 positive values