Re: [PATCH] scsi: isci: convert sysfs sprintf/snprintf family to sysfs_emit

From: James Bottomley
Date: Wed Feb 03 2021 - 11:17:13 EST


On Wed, 2021-02-03 at 16:43 +0800, Jiapeng Chong wrote:
> Fix the following coccicheck warning:
>
> ./drivers/scsi/isci/init.c:140:8-16: WARNING: use scnprintf or
> sprintf.
>
> Reported-by: Abaci Robot<abaci@xxxxxxxxxxxxxxxxx>
> Signed-off-by: Jiapeng Chong <jiapeng.chong@xxxxxxxxxxxxxxxxx>
> ---
> drivers/scsi/isci/init.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/scsi/isci/init.c b/drivers/scsi/isci/init.c
> index c452849..741a98e 100644
> --- a/drivers/scsi/isci/init.c
> +++ b/drivers/scsi/isci/init.c
> @@ -137,7 +137,7 @@ static ssize_t isci_show_id(struct device *dev,
> struct device_attribute *attr, c
> struct sas_ha_struct *sas_ha = SHOST_TO_SAS_HA(shost);
> struct isci_host *ihost = container_of(sas_ha, typeof(*ihost),
> sas_ha);
>
> - return snprintf(buf, PAGE_SIZE, "%d\n", ihost->id);
> + return sysfs_emit(buf, "%d\n", ihost->id);

What's the point of doing this change? We'd have to have 13,600 bit
integer types before this could ever possibly overflow and the
difference between snprintf and scnprintf actually matter from a
practical point of view. Perhaps the coccinelle check should be
updated to account for these common impossible to overflow situations.

James