2022-11-09 06:08:30

by Deepak R Varma

[permalink] [raw]
Subject: [PATCH v2] staging: fieldbus: replace snprintf in show functions with sysfs_emit

The show() methods should only use sysfs_emit() when formatting values
to be returned to the user space.
Ref: Documentation/filesystems/sysfs.rst
Issue identified by coccicheck.

Signed-off-by: Deepak R Varma <[email protected]>
---

Changes in v2:
1. Switch to using sysfs_emit instead of scnprintf
2. Update patch subject and log accordingly
Feedback from [email protected]


drivers/staging/fieldbus/dev_core.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/staging/fieldbus/dev_core.c b/drivers/staging/fieldbus/dev_core.c
index 5aab734606ea..d32599f4eb44 100644
--- a/drivers/staging/fieldbus/dev_core.c
+++ b/drivers/staging/fieldbus/dev_core.c
@@ -67,10 +67,10 @@ static ssize_t card_name_show(struct device *dev, struct device_attribute *attr,
struct fieldbus_dev *fb = dev_get_drvdata(dev);

/*
- * card_name was provided by child driver, could potentially be long.
- * protect against buffer overrun.
+ * sysfs provides PAGE_SIZE long buffer to take care of potentially
+ * long card_name provided by child driver.
*/
- return snprintf(buf, PAGE_SIZE, "%s\n", fb->card_name);
+ return sysfs_emit(buf, "%s\n", fb->card_name);
}
static DEVICE_ATTR_RO(card_name);

--
2.34.1





2022-11-09 08:03:20

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH v2] staging: fieldbus: replace snprintf in show functions with sysfs_emit

On Wed, Nov 09, 2022 at 11:26:52AM +0530, Deepak R Varma wrote:
> The show() methods should only use sysfs_emit() when formatting values
> to be returned to the user space.
> Ref: Documentation/filesystems/sysfs.rst
> Issue identified by coccicheck.
>
> Signed-off-by: Deepak R Varma <[email protected]>
> ---
>
> Changes in v2:
> 1. Switch to using sysfs_emit instead of scnprintf
> 2. Update patch subject and log accordingly
> Feedback from [email protected]
>
>
> drivers/staging/fieldbus/dev_core.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/staging/fieldbus/dev_core.c b/drivers/staging/fieldbus/dev_core.c
> index 5aab734606ea..d32599f4eb44 100644
> --- a/drivers/staging/fieldbus/dev_core.c
> +++ b/drivers/staging/fieldbus/dev_core.c
> @@ -67,10 +67,10 @@ static ssize_t card_name_show(struct device *dev, struct device_attribute *attr,
> struct fieldbus_dev *fb = dev_get_drvdata(dev);
>
> /*
> - * card_name was provided by child driver, could potentially be long.
> - * protect against buffer overrun.
> + * sysfs provides PAGE_SIZE long buffer to take care of potentially

No need to ever mention PAGE_SIZE at all, this comment should just be:
/* card_name was provided by child driver */

But the larger question is, why did you only convert one of the sysfs
show functions in this file? Why not do them all?

thanks,

greg k-h

2022-11-09 08:44:49

by Deepak R Varma

[permalink] [raw]
Subject: Re: [PATCH v2] staging: fieldbus: replace snprintf in show functions with sysfs_emit

On Wed, Nov 09, 2022 at 08:30:26AM +0100, Greg Kroah-Hartman wrote:
> On Wed, Nov 09, 2022 at 11:26:52AM +0530, Deepak R Varma wrote:
> > The show() methods should only use sysfs_emit() when formatting values
> > to be returned to the user space.
> > Ref: Documentation/filesystems/sysfs.rst
> > Issue identified by coccicheck.
> >
> > Signed-off-by: Deepak R Varma <[email protected]>
> > /*
> > - * card_name was provided by child driver, could potentially be long.
> > - * protect against buffer overrun.
> > + * sysfs provides PAGE_SIZE long buffer to take care of potentially
>
> No need to ever mention PAGE_SIZE at all, this comment should just be:
> /* card_name was provided by child driver */

Sure. I will update the comment in the revision.

>
> But the larger question is, why did you only convert one of the sysfs
> show functions in this file? Why not do them all?

I was limiting it to what is reported by coccicheck. I will review other such
show functions and send a consolidated patch.

Thank you,
./drv

>
> thanks,
>
> greg k-h
>