sprintf arg overlaps destination
authorAlan Modra <amodra@gmail.com>
Thu, 10 Sep 2020 04:42:52 +0000 (14:12 +0930)
committerAlan Modra <amodra@gmail.com>
Thu, 10 Sep 2020 04:42:52 +0000 (14:12 +0930)
* csky-dis.c (csky_output_operand): Don't sprintf str to itself.

opcodes/ChangeLog
opcodes/csky-dis.c

index bd5a284949d06e49adc462f2ce5fbb472e40efa2..cbd62b786d5ebb4345b9ad525dae93f56fe2fcaa 100644 (file)
@@ -1,3 +1,7 @@
+2020-09-10  Alan Modra  <amodra@gmail.com>
+
+       * csky-dis.c (csky_output_operand): Don't sprintf str to itself.
+
 2020-09-07  Cooper Qu  <cooper.qu@linux.alibaba.com>
 
        * csky-opc.h (csky_v2_opcodes): Change mvtc and mulsw's
index 89f1c6bcb3dc413c13a5775a1f9739f8317e425a..78ff055c3dbd7a3444c99d1ab1d64bc8ef39fc42 100644 (file)
@@ -647,8 +647,8 @@ csky_output_operand (char *str, struct operand const *oprnd,
 
        float f = 0;
        memcpy (&f, &value, sizeof (float));
-       sprintf (str, "%s%f\t// imm9:%4d, imm4:%2d", str, f, imm8, imm4);
-
+       sprintf (buf, "%f\t// imm9:%4d, imm4:%2d", f, imm8, imm4);
+       strcat (str, buf);
        break;
       }
 
@@ -675,8 +675,8 @@ csky_output_operand (char *str, struct operand const *oprnd,
          }
        double d = 0;
        memcpy (&d, &dvalue, sizeof (double));
-       sprintf (str, "%s%lf\t// imm9:%4ld, imm4:%2ld", str, d, imm8, imm4);
-
+       sprintf (buf, "%lf\t// imm9:%4ld, imm4:%2ld", d, imm8, imm4);
+       strcat (str, buf);
        break;
       }
     case OPRND_TYPE_LABEL_WITH_BRACKET: