Re: [PATCH] staging: fieldbus: convert snprintf to scnprintf

From: Deepak R Varma
Date: Wed Nov 09 2022 - 01:05:39 EST


On Tue, Nov 08, 2022 at 04:13:12PM +0100, Greg Kroah-Hartman wrote:
> On Wed, Nov 02, 2022 at 11:55:52PM +0530, Deepak R Varma wrote:
> > It is recommended to use scnprintf instead of snprintf to accurately
> > return the size of the encoded data. Following article [1] has details
> > on the reason for this kernel level migration. This issue was identified
> > using coccicheck.
> >
> > [1] https://lwn.net/Articles/69419/
> >
> > Signed-off-by: Deepak R Varma <drv@xxxxxxxxx>
> > ---
> > drivers/staging/fieldbus/dev_core.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/staging/fieldbus/dev_core.c b/drivers/staging/fieldbus/dev_core.c
> > index 5aab734606ea..d51f2b02d5e6 100644
> > --- a/drivers/staging/fieldbus/dev_core.c
> > +++ b/drivers/staging/fieldbus/dev_core.c
> > @@ -70,7 +70,7 @@ static ssize_t card_name_show(struct device *dev, struct device_attribute *attr,
> > * card_name was provided by child driver, could potentially be long.
> > * protect against buffer overrun.
> > */
> > - return snprintf(buf, PAGE_SIZE, "%s\n", fb->card_name);
> > + return scnprintf(buf, PAGE_SIZE, "%s\n", fb->card_name);
>
> No, neither of these are correct.
>
> Please use sysfs_emit() for sysfs show callbacks.

Hello Greg,
Thank you. I corrected and resubmitted the patch as suggested.

Hi Julia,
The device_attr_show.cocci file should have made the recommendation to use
the sysfs_emit(), however, in this case it instead suggested to use scnprintf.
Is it because the method name was not "show" but "xxx_show"?

Thank you,
./drv

>
> thanks,
>
> greg k-h