gprof: sprintf sanitizer null destination pointer

Message ID ZMuTR6AzrEsxC+GC@squeak.grove.modra.org
State Accepted
Headers
Series gprof: sprintf sanitizer null destination pointer |

Checks

Context Check Description
snail/binutils-gdb-check success Github commit url

Commit Message

Alan Modra Aug. 3, 2023, 11:45 a.m. UTC
  * basic_blocks.c (annotate_with_count): Use output of sprintf
	rather than strlen.
  

Patch

diff --git a/gprof/basic_blocks.c b/gprof/basic_blocks.c
index 6073f556f47..7fbba8c03fa 100644
--- a/gprof/basic_blocks.c
+++ b/gprof/basic_blocks.c
@@ -360,8 +360,7 @@  annotate_with_count (char *buf, unsigned int width, int line_num, void *arg)
 	 execution count (if bb_annotate_all_lines is set).  */
       if (b->is_func)
 	{
-	  sprintf (p, "%lu", b->ncalls);
-	  p += strlen (p);
+	  p += sprintf (p, "%lu", b->ncalls);
 	  last_count = b->ncalls;
 	  last_print = last_count;
 	  ncalls = b->ncalls;
@@ -370,8 +369,7 @@  annotate_with_count (char *buf, unsigned int width, int line_num, void *arg)
       else if (bb_annotate_all_lines
 	       && b->bb_addr[0] && b->bb_addr[0] > b->addr)
 	{
-	  sprintf (p, "%lu", last_count);
-	  p += strlen (p);
+	  p += sprintf (p, "%lu", last_count);
 	  last_print = last_count;
 	  ncalls = last_count;
 	  ncalls_set = 1;
@@ -396,8 +394,7 @@  annotate_with_count (char *buf, unsigned int width, int line_num, void *arg)
 
 	  if (p > tmpbuf)
 	    *p++ = ',';
-	  sprintf (p, "%lu", last_count);
-	  p += strlen (p);
+	  p += sprintf (p, "%lu", last_count);
 
 	  last_print = last_count;
 	}
@@ -410,8 +407,7 @@  annotate_with_count (char *buf, unsigned int width, int line_num, void *arg)
 
       if (bb_annotate_all_lines && p == tmpbuf)
 	{
-	  sprintf (p, "%lu", last_count);
-	  p += strlen (p);
+	  p += sprintf (p, "%lu", last_count);
 	  ncalls = last_count;
 	  ncalls_set = 1;
 	}