CC: kbuild-all(a)lists.01.org CC: linux-kernel(a)vger.kernel.org TO: Denis Efremov CC: Julia Lawall CC: Hans de Goede CC: Jean Delvare CC: Guenter Roeck CC: linux-hwmon(a)vger.kernel.org CC: linux-kernel(a)vger.kernel.org From: kernel test robot drivers/hwmon/sch5627.c:275:8-16: WARNING: use scnprintf or sprintf drivers/hwmon/sch5627.c:288:8-16: WARNING: use scnprintf or sprintf drivers/hwmon/sch5627.c:263:8-16: WARNING: use scnprintf or sprintf drivers/hwmon/sch5627.c:312:8-16: WARNING: use scnprintf or sprintf drivers/hwmon/sch5627.c:304:8-16: WARNING: use scnprintf or sprintf drivers/hwmon/sch5627.c:198:8-16: WARNING: use scnprintf or sprintf drivers/hwmon/sch5627.c:246:8-16: WARNING: use scnprintf or sprintf drivers/hwmon/sch5627.c:224:8-16: WARNING: use scnprintf or sprintf drivers/hwmon/sch5627.c:235:8-16: WARNING: use scnprintf or sprintf drivers/hwmon/sch5627.c:212: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: 9c7d619be5a002ea29c172df5e3c1227c22cbb41 commit: abfc19ff202d287742483e15fd478ddd6ada2187 coccinelle: api: add device_attr_show script :::::: branch date: 10 hours ago :::::: commit date: 4 weeks ago Please take the patch only if it's a positive warning. Thanks! sch5627.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) --- a/drivers/hwmon/sch5627.c +++ b/drivers/hwmon/sch5627.c @@ -195,7 +195,7 @@ static int reg_to_rpm(u16 reg) static ssize_t name_show(struct device *dev, struct device_attribute *devattr, char *buf) { - return snprintf(buf, PAGE_SIZE, "%s\n", DEVNAME); + return scnprintf(buf, PAGE_SIZE, "%s\n", DEVNAME); } static ssize_t temp_show(struct device *dev, struct device_attribute *devattr, @@ -209,7 +209,7 @@ static ssize_t temp_show(struct device * return PTR_ERR(data); val = reg_to_temp(data->temp[attr->index]); - return snprintf(buf, PAGE_SIZE, "%d\n", val); + return scnprintf(buf, PAGE_SIZE, "%d\n", val); } static ssize_t temp_fault_show(struct device *dev, @@ -221,7 +221,7 @@ static ssize_t temp_fault_show(struct de if (IS_ERR(data)) return PTR_ERR(data); - return snprintf(buf, PAGE_SIZE, "%d\n", data->temp[attr->index] == 0); + return scnprintf(buf, PAGE_SIZE, "%d\n", data->temp[attr->index] == 0); } static ssize_t temp_max_show(struct device *dev, @@ -232,7 +232,7 @@ static ssize_t temp_max_show(struct devi int val; val = reg_to_temp_limit(data->temp_max[attr->index]); - return snprintf(buf, PAGE_SIZE, "%d\n", val); + return scnprintf(buf, PAGE_SIZE, "%d\n", val); } static ssize_t temp_crit_show(struct device *dev, @@ -243,7 +243,7 @@ static ssize_t temp_crit_show(struct dev int val; val = reg_to_temp_limit(data->temp_crit[attr->index]); - return snprintf(buf, PAGE_SIZE, "%d\n", val); + return scnprintf(buf, PAGE_SIZE, "%d\n", val); } static ssize_t fan_show(struct device *dev, struct device_attribute *devattr, @@ -260,7 +260,7 @@ static ssize_t fan_show(struct device *d if (val < 0) return val; - return snprintf(buf, PAGE_SIZE, "%d\n", val); + return scnprintf(buf, PAGE_SIZE, "%d\n", val); } static ssize_t fan_fault_show(struct device *dev, @@ -272,7 +272,7 @@ static ssize_t fan_fault_show(struct dev if (IS_ERR(data)) return PTR_ERR(data); - return snprintf(buf, PAGE_SIZE, "%d\n", + return scnprintf(buf, PAGE_SIZE, "%d\n", data->fan[attr->index] == 0xffff); } @@ -285,7 +285,7 @@ static ssize_t fan_min_show(struct devic if (val < 0) return val; - return snprintf(buf, PAGE_SIZE, "%d\n", val); + return scnprintf(buf, PAGE_SIZE, "%d\n", val); } static ssize_t in_show(struct device *dev, struct device_attribute *devattr, @@ -301,7 +301,7 @@ static ssize_t in_show(struct device *de val = DIV_ROUND_CLOSEST( data->in[attr->index] * SCH5627_REG_IN_FACTOR[attr->index], 10000); - return snprintf(buf, PAGE_SIZE, "%d\n", val); + return scnprintf(buf, PAGE_SIZE, "%d\n", val); } static ssize_t in_label_show(struct device *dev, @@ -309,7 +309,7 @@ static ssize_t in_label_show(struct devi { struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); - return snprintf(buf, PAGE_SIZE, "%s\n", + return scnprintf(buf, PAGE_SIZE, "%s\n", SCH5627_IN_LABELS[attr->index]); }