cris: sprintf sanitizer null destination pointer

Alan Modra amodra@gmail.com
Thu Aug 3 11:43:01 GMT 2023


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.

diff --git a/opcodes/cris-dis.c b/opcodes/cris-dis.c
index b8eaa4b7942..681fccf0dca 100644
--- a/opcodes/cris-dis.c
+++ b/opcodes/cris-dis.c
@@ -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.  */

-- 
Alan Modra
Australia Development Lab, IBM


More information about the Binutils mailing list