Messages in this thread | | | From | Ian Rogers <> | Date | Wed, 23 Nov 2022 15:22:01 -0800 | Subject | Re: [PATCH 04/15] perf stat: Use scnprintf() in prepare_interval() |
| |
On Wed, Nov 23, 2022 at 10:02 AM Namhyung Kim <namhyung@kernel.org> wrote: > > It should not use sprintf() anymore. Let's pass the buffer size and use the > safer scnprintf() instead. > > Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Acked-by: Ian Rogers <irogers@google.com>
Thanks, Ian
> --- > tools/perf/util/stat-display.c | 20 ++++++++++---------- > 1 file changed, 10 insertions(+), 10 deletions(-) > > diff --git a/tools/perf/util/stat-display.c b/tools/perf/util/stat-display.c > index 15c88b9b5aa3..744b7a40f59a 100644 > --- a/tools/perf/util/stat-display.c > +++ b/tools/perf/util/stat-display.c > @@ -1073,23 +1073,23 @@ static void print_metric_headers(struct perf_stat_config *config, > } > > static void prepare_interval(struct perf_stat_config *config, > - char *prefix, struct timespec *ts) > + char *prefix, size_t len, struct timespec *ts) > { > if (config->iostat_run) > return; > > if (config->csv_output) > - sprintf(prefix, "%lu.%09lu%s", (unsigned long) ts->tv_sec, > - ts->tv_nsec, config->csv_sep); > + scnprintf(prefix, len, "%lu.%09lu%s", > + (unsigned long) ts->tv_sec, ts->tv_nsec, config->csv_sep); > else if (!config->json_output) > - sprintf(prefix, "%6lu.%09lu ", (unsigned long) ts->tv_sec, > - ts->tv_nsec); > + scnprintf(prefix, len, "%6lu.%09lu ", > + (unsigned long) ts->tv_sec, ts->tv_nsec); > else if (!config->metric_only) > - sprintf(prefix, "{\"interval\" : %lu.%09lu, ", (unsigned long) > - ts->tv_sec, ts->tv_nsec); > + scnprintf(prefix, len, "{\"interval\" : %lu.%09lu, ", > + (unsigned long) ts->tv_sec, ts->tv_nsec); > else > - sprintf(prefix, "{\"interval\" : %lu.%09lu}", (unsigned long) > - ts->tv_sec, ts->tv_nsec); > + scnprintf(prefix, len, "{\"interval\" : %lu.%09lu}", > + (unsigned long) ts->tv_sec, ts->tv_nsec); > } > > static void print_header_interval_std(struct perf_stat_config *config, > @@ -1390,7 +1390,7 @@ void evlist__print_counters(struct evlist *evlist, struct perf_stat_config *conf > > if (interval) { > prefix = buf; > - prepare_interval(config, prefix, ts); > + prepare_interval(config, buf, sizeof(buf), ts); > } > > print_header(config, _target, evlist, argc, argv); > -- > 2.38.1.584.g0f3c55d4c2-goog >
| |