Coccinnelle reports a warning
Warning: Use scnprintf or sprintf
Adding to that, there has been a slow migration from snprintf to scnprintf.
This LWN article explains the rationale for this change
https: //lwn.net/Articles/69419/
ie. snprintf() returns what *would* be the resulting length,
while scnprintf() returns the actual length.
However following the advice on
https://www.kernel.org/doc/html/latest/filesystems/sysfs.html
For show(device *...) functions we should only use sysfs_emit() or sysfs_emit_at()
especially when formatting the value to be returned to user space.
Hence here
We convert to sysfs_emit() that even does better and shorten the code
using the same rationale of scnprintf()
Signed-off-by: Jules Irenge <[email protected]>
---
v2: Replace scnprintf() with sysfs_emit()
drivers/comedi/comedi_fops.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/comedi/comedi_fops.c b/drivers/comedi/comedi_fops.c
index 55a0cae04b8d..a6017fafcb2a 100644
--- a/drivers/comedi/comedi_fops.c
+++ b/drivers/comedi/comedi_fops.c
@@ -396,7 +396,7 @@ static ssize_t max_read_buffer_kb_show(struct device *csdev,
mutex_unlock(&dev->mutex);
comedi_dev_put(dev);
- return snprintf(buf, PAGE_SIZE, "%u\n", size);
+ return sysfs_emit(buf, "%u\n", size);
}
static ssize_t max_read_buffer_kb_store(struct device *csdev,
--
2.37.3
On Wed, Sep 28, 2022 at 02:23:41PM +0100, Jules Irenge wrote:
> Coccinnelle reports a warning
> Warning: Use scnprintf or sprintf
>
> Adding to that, there has been a slow migration from snprintf to scnprintf.
> This LWN article explains the rationale for this change
>
> https: //lwn.net/Articles/69419/
> ie. snprintf() returns what *would* be the resulting length,
> while scnprintf() returns the actual length.
None of this is needed or relevant for this change.
>
> However following the advice on
> https://www.kernel.org/doc/html/latest/filesystems/sysfs.html
>
> For show(device *...) functions we should only use sysfs_emit() or sysfs_emit_at()
> especially when formatting the value to be returned to user space.
>
> Hence here
> We convert to sysfs_emit() that even does better and shorten the code
> using the same rationale of scnprintf()
>
> Signed-off-by: Jules Irenge <[email protected]>
> ---
>
> v2: Replace scnprintf() with sysfs_emit()
>
> drivers/comedi/comedi_fops.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/comedi/comedi_fops.c b/drivers/comedi/comedi_fops.c
> index 55a0cae04b8d..a6017fafcb2a 100644
> --- a/drivers/comedi/comedi_fops.c
> +++ b/drivers/comedi/comedi_fops.c
> @@ -396,7 +396,7 @@ static ssize_t max_read_buffer_kb_show(struct device *csdev,
> mutex_unlock(&dev->mutex);
>
> comedi_dev_put(dev);
> - return snprintf(buf, PAGE_SIZE, "%u\n", size);
> + return sysfs_emit(buf, "%u\n", size);
> }
>
> static ssize_t max_read_buffer_kb_store(struct device *csdev,
Does not apply to my tree :(
thanks,
greg k-h