From 23bef3fea380f383f910fd48f9d4f5633ee0d366 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Thu, 10 Sep 2020 14:12:52 +0930 Subject: [PATCH] sprintf arg overlaps destination * csky-dis.c (csky_output_operand): Don't sprintf str to itself. --- opcodes/ChangeLog | 4 ++++ opcodes/csky-dis.c | 8 ++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index bd5a284949d..cbd62b786d5 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,7 @@ +2020-09-10 Alan Modra + + * csky-dis.c (csky_output_operand): Don't sprintf str to itself. + 2020-09-07 Cooper Qu * csky-opc.h (csky_v2_opcodes): Change mvtc and mulsw's diff --git a/opcodes/csky-dis.c b/opcodes/csky-dis.c index 89f1c6bcb3d..78ff055c3db 100644 --- a/opcodes/csky-dis.c +++ b/opcodes/csky-dis.c @@ -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: -- 2.30.2