perf/core: Convert snprintf() to scnprintf()
authorJules Irenge <jbi.octave@gmail.com>
Sat, 17 Sep 2022 23:41:08 +0000 (00:41 +0100)
committerIngo Molnar <mingo@kernel.org>
Wed, 21 Sep 2022 10:34:36 +0000 (12:34 +0200)
Coccinelle reports a warning:

    WARNING: use scnprintf or sprintf

This LWN article explains the rationale for this change:

    https: //lwn.net/Articles/69419/

Ie. snprintf() returns what *would* be the resulting length,
while scnprintf() returns the actual length.

Adding to that, there has also been some slow migration from snprintf to scnprintf,
here's the shift in usage in the past 3.5 years, in all fs/ files:

                         v5.0    v6.0-rc6
   --------------------------------------
   snprintf() uses:        63         213
   scnprintf() uses:      374         186

No intended change in behavior.

[ mingo: Improved the changelog & reviewed the usage sites. ]

Signed-off-by: Jules Irenge <jbi.octave@gmail.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
kernel/events/core.c

index 7da5515..c07e9a3 100644 (file)
@@ -10952,7 +10952,7 @@ static ssize_t nr_addr_filters_show(struct device *dev,
 {
        struct pmu *pmu = dev_get_drvdata(dev);
 
-       return snprintf(page, PAGE_SIZE - 1, "%d\n", pmu->nr_addr_filters);
+       return scnprintf(page, PAGE_SIZE - 1, "%d\n", pmu->nr_addr_filters);
 }
 DEVICE_ATTR_RO(nr_addr_filters);
 
@@ -10963,7 +10963,7 @@ type_show(struct device *dev, struct device_attribute *attr, char *page)
 {
        struct pmu *pmu = dev_get_drvdata(dev);
 
-       return snprintf(page, PAGE_SIZE-1, "%d\n", pmu->type);
+       return scnprintf(page, PAGE_SIZE - 1, "%d\n", pmu->type);
 }
 static DEVICE_ATTR_RO(type);
 
@@ -10974,7 +10974,7 @@ perf_event_mux_interval_ms_show(struct device *dev,
 {
        struct pmu *pmu = dev_get_drvdata(dev);
 
-       return snprintf(page, PAGE_SIZE-1, "%d\n", pmu->hrtimer_interval_ms);
+       return scnprintf(page, PAGE_SIZE - 1, "%d\n", pmu->hrtimer_interval_ms);
 }
 
 static DEFINE_MUTEX(mux_interval_mutex);