gprof: sprintf sanitizer null destination pointer
Alan Modra
amodra@gmail.com
Thu Aug 3 11:45:11 GMT 2023
* basic_blocks.c (annotate_with_count): Use output of sprintf
rather than strlen.
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;
}
--
Alan Modra
Australia Development Lab, IBM
More information about the Binutils
mailing list