CC: kbuild-all(a)lists.01.org CC: linux-kernel(a)vger.kernel.org TO: Denis Efremov CC: Julia Lawall CC: Mattia Dongili CC: Darren Hart CC: Andy Shevchenko CC: platform-driver-x86(a)vger.kernel.org CC: linux-kernel(a)vger.kernel.org From: kernel test robot drivers/platform/x86/sony-laptop.c:2054:8-16: WARNING: use scnprintf or sprintf drivers/platform/x86/sony-laptop.c:2722:8-16: WARNING: use scnprintf or sprintf drivers/platform/x86/sony-laptop.c:2496:8-16: WARNING: use scnprintf or sprintf drivers/platform/x86/sony-laptop.c:2571:8-16: WARNING: use scnprintf or sprintf drivers/platform/x86/sony-laptop.c:2711:8-16: WARNING: use scnprintf or sprintf drivers/platform/x86/sony-laptop.c:2364:10-18: WARNING: use scnprintf or sprintf drivers/platform/x86/sony-laptop.c:2645:8-16: WARNING: use scnprintf or sprintf drivers/platform/x86/sony-laptop.c:2873:8-16: WARNING: use scnprintf or sprintf drivers/platform/x86/sony-laptop.c:967:8-16: WARNING: use scnprintf or sprintf drivers/platform/x86/sony-laptop.c:3001:8-16: WARNING: use scnprintf or sprintf drivers/platform/x86/sony-laptop.c:2818:8-16: WARNING: use scnprintf or sprintf drivers/platform/x86/sony-laptop.c:3999:8-16: WARNING: use scnprintf or sprintf From Documentation/filesystems/sysfs.txt: show() must not use snprintf() when formatting the value to be returned to user space. If you can guarantee that an overflow will never happen you can use sprintf() otherwise you must use scnprintf(). Generated by: scripts/coccinelle/api/device_attr_show.cocci Fixes: abfc19ff202d ("coccinelle: api: add device_attr_show script") CC: Denis Efremov Signed-off-by: kernel test robot --- tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 4ef8451b332662d004df269d4cdeb7d9f31419b5 commit: abfc19ff202d287742483e15fd478ddd6ada2187 coccinelle: api: add device_attr_show script :::::: branch date: 28 hours ago :::::: commit date: 3 months ago Please take the patch only if it's a positive warning. Thanks! sony-laptop.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) --- a/drivers/platform/x86/sony-laptop.c +++ b/drivers/platform/x86/sony-laptop.c @@ -964,7 +964,7 @@ static ssize_t sony_nc_sysfs_show(struct if (item->validate) value = item->validate(SNC_VALIDATE_OUT, value); - return snprintf(buffer, PAGE_SIZE, "%d\n", value); + return scnprintf(buffer, PAGE_SIZE, "%d\n", value); } static ssize_t sony_nc_sysfs_store(struct device *dev, @@ -2051,7 +2051,7 @@ static ssize_t sony_nc_battery_care_limi break; } - return snprintf(buffer, PAGE_SIZE, "%d\n", status); + return scnprintf(buffer, PAGE_SIZE, "%d\n", status); } static ssize_t sony_nc_battery_care_health_show(struct device *dev, @@ -2361,7 +2361,7 @@ static ssize_t sony_nc_lid_resume_show(s while (pos < LID_RESUME_MAX) { if (&lid_ctl->attrs[pos].attr == &attr->attr) - return snprintf(buffer, PAGE_SIZE, "%d\n", + return scnprintf(buffer, PAGE_SIZE, "%d\n", (lid_ctl->status >> pos) & 0x01); pos++; } @@ -2493,7 +2493,7 @@ static ssize_t sony_nc_gfx_switch_status if (pos < 0) return pos; - return snprintf(buffer, PAGE_SIZE, "%s\n", + return scnprintf(buffer, PAGE_SIZE, "%s\n", pos == SPEED ? "speed" : pos == STAMINA ? "stamina" : pos == AUTO ? "auto" : "unknown"); @@ -2568,7 +2568,7 @@ static ssize_t sony_nc_highspeed_chargin if (sony_call_snc_handle(0x0131, 0x0100, &result)) return -EIO; - return snprintf(buffer, PAGE_SIZE, "%d\n", result & 0x01); + return scnprintf(buffer, PAGE_SIZE, "%d\n", result & 0x01); } static int sony_nc_highspeed_charging_setup(struct platform_device *pd) @@ -2642,7 +2642,7 @@ static ssize_t sony_nc_lowbatt_show(stru if (sony_call_snc_handle(0x0121, 0x0200, &result)) return -EIO; - return snprintf(buffer, PAGE_SIZE, "%d\n", result & 1); + return scnprintf(buffer, PAGE_SIZE, "%d\n", result & 1); } static int sony_nc_lowbatt_setup(struct platform_device *pd) @@ -2708,7 +2708,7 @@ static ssize_t sony_nc_hsfan_show(struct if (sony_call_snc_handle(0x0149, 0x0100, &result)) return -EIO; - return snprintf(buffer, PAGE_SIZE, "%d\n", result & 0x01); + return scnprintf(buffer, PAGE_SIZE, "%d\n", result & 0x01); } static ssize_t sony_nc_fanspeed_show(struct device *dev, @@ -2719,7 +2719,7 @@ static ssize_t sony_nc_fanspeed_show(str if (sony_call_snc_handle(0x0149, 0x0300, &result)) return -EIO; - return snprintf(buffer, PAGE_SIZE, "%d\n", result & 0xff); + return scnprintf(buffer, PAGE_SIZE, "%d\n", result & 0xff); } static int sony_nc_fanspeed_setup(struct platform_device *pd) @@ -2815,7 +2815,7 @@ static ssize_t sony_nc_usb_charge_show(s if (sony_call_snc_handle(0x0155, 0x0000, &result)) return -EIO; - return snprintf(buffer, PAGE_SIZE, "%d\n", result & 0x01); + return scnprintf(buffer, PAGE_SIZE, "%d\n", result & 0x01); } static int sony_nc_usb_charge_setup(struct platform_device *pd) @@ -2870,7 +2870,7 @@ static ssize_t sony_nc_panelid_show(stru if (sony_call_snc_handle(0x011D, 0x0000, &result)) return -EIO; - return snprintf(buffer, PAGE_SIZE, "%d\n", result); + return scnprintf(buffer, PAGE_SIZE, "%d\n", result); } static int sony_nc_panelid_setup(struct platform_device *pd) @@ -2998,7 +2998,7 @@ static ssize_t sony_nc_touchpad_show(str if (sony_call_snc_handle(tp_ctl->handle, 0x000, &result)) return -EINVAL; - return snprintf(buffer, PAGE_SIZE, "%d\n", !(result & 0x01)); + return scnprintf(buffer, PAGE_SIZE, "%d\n", !(result & 0x01)); } static int sony_nc_touchpad_setup(struct platform_device *pd, @@ -3996,7 +3996,7 @@ static ssize_t sony_pic_fanspeed_show(st if (sony_pic_get_fanspeed(&value)) return -EIO; - return snprintf(buffer, PAGE_SIZE, "%d\n", value); + return scnprintf(buffer, PAGE_SIZE, "%d\n", value); } #define SPIC_ATTR(_name, _mode) \