Re: [PATCH] btrfs: replace snprintf in show functions with sysfs_emit

From: Anand Jain
Date: Wed Oct 13 2021 - 03:51:53 EST


On 13/10/2021 11:28, Qing Wang wrote:
coccicheck complains about the use of snprintf() in sysfs show functions.

It looks like the reason is snprintf() unaware of the PAGE_SIZE max_limit of the buf.

Fix the following coccicheck warning:
fs/btrfs/sysfs.c:335:8-16: WARNING: use scnprintf or sprintf.

Hm. We use snprintf() at quite a lot more places in sysfs.c and, I don't see them getting this fix. Why?

Use sysfs_emit instead of scnprintf or sprintf makes more sense.

Below commit has added it. Nice.

commit 2efc459d06f1630001e3984854848a5647086232
Date: Wed Sep 16 13:40:38 2020 -0700

sysfs: Add sysfs_emit and sysfs_emit_at to format sysfs out

Thanks, Anand


Signed-off-by: Qing Wang <wangqing@xxxxxxxx>
---
fs/btrfs/sysfs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/btrfs/sysfs.c b/fs/btrfs/sysfs.c
index 9d1d140..fda094a 100644
--- a/fs/btrfs/sysfs.c
+++ b/fs/btrfs/sysfs.c
@@ -332,7 +332,7 @@ BTRFS_ATTR(static_feature, supported_checksums, supported_checksums_show);
static ssize_t send_stream_version_show(struct kobject *kobj,
struct kobj_attribute *ka, char *buf)
{
- return snprintf(buf, PAGE_SIZE, "%d\n", BTRFS_SEND_STREAM_VERSION);
+ return sysfs_emit(buf, "%d\n", BTRFS_SEND_STREAM_VERSION);
}
BTRFS_ATTR(static_feature, send_stream_version, send_stream_version_show);