cris: sprintf sanitizer null destination pointer
authorAlan Modra <amodra@gmail.com>
Wed, 2 Aug 2023 22:29:47 +0000 (07:59 +0930)
committerAlan Modra <amodra@gmail.com>
Thu, 3 Aug 2023 11:49:54 +0000 (21:19 +0930)
Simplify the sprintf calls, and use sprintf return value.  Older code
in binutils avoided using the sprintf return count of chars printed,
because with some older C libraries it wasn't reliable.  Nowadays it
should be OK to use (and we already use the return value elsewhere).
sprintf can't return an error status of -1 here.

* cris-dis.c (format_dec): Avoid sanitizer warning.  Use sprintf
return value rather than calling strlen.

opcodes/cris-dis.c

index b8eaa4b79422f20754d6f8e84c3f4d0d7a0fac1a..681fccf0dcab41a58d70ce3506f5e55280932af5 100644 (file)
@@ -580,12 +580,7 @@ static char *
 format_dec (long number, char *outbuffer, int signedp)
 {
   last_immediate = number;
-  if (signedp)
-    sprintf (outbuffer, "%ld", number);
-  else
-    sprintf (outbuffer, "%lu", (unsigned long) number);
-
-  return outbuffer + strlen (outbuffer);
+  return outbuffer + sprintf (outbuffer, signedp ? "%ld" : "%lu", number);
 }
 
 /* Format the name of the general register regno into outbuffer.  */