]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blobdiff - opcodes/csky-dis.c
PR28168: [CSKY] Fix stack overflow in disassembler
[thirdparty/binutils-gdb.git] / opcodes / csky-dis.c
index cdd911be09aa18eb1e385b0a51dc807a4bd1e6e5..cca8d364901b63d71a456d0d71ab9c0f4e5442f9 100644 (file)
@@ -565,7 +565,7 @@ csky_output_operand (char *str, struct operand const *oprnd,
                                      ? &floatformat_ieee_double_big
                                      : &floatformat_ieee_double_little),
                                     ibytes, &f);
-           sprintf (buf, "%f", f);
+           sprintf (buf, "%.7g", f);
          }
        else
          {
@@ -645,7 +645,7 @@ csky_output_operand (char *str, struct operand const *oprnd,
        floatformat_to_double (&floatformat_ieee_double_little, valbytes,
                               &fvalue);
 
-       sprintf (buf, "%f", fvalue);
+       sprintf (buf, "%.7g", fvalue);
        strcat (str, buf);
        break;
       }
@@ -673,7 +673,7 @@ csky_output_operand (char *str, struct operand const *oprnd,
 
        float f = 0;
        memcpy (&f, &value, sizeof (float));
-       sprintf (buf, "%f\t// imm9:%4d, imm4:%2d", f, imm8, imm4);
+       sprintf (buf, "%.7g\t// imm9:%4d, imm4:%2d", f, imm8, imm4);
        strcat (str, buf);
 
        break;
@@ -702,7 +702,7 @@ csky_output_operand (char *str, struct operand const *oprnd,
          }
        double d = 0;
        memcpy (&d, &dvalue, sizeof (double));
-       sprintf (buf, "%lf\t// imm9:%4ld, imm4:%2ld", d, (long) imm8, (long) imm4);
+       sprintf (buf, "%.7g\t// imm9:%4ld, imm4:%2ld", d, (long) imm8, (long) imm4);
        strcat (str, buf);
 
        break;