2022-09-26 19:16:29

by Jules Irenge

[permalink] [raw]
Subject: [PATCH 1/7] comedi: Convert snprintf() to scnprintf()

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.

Signed-off-by: Jules Irenge <[email protected]>
---
drivers/comedi/comedi_fops.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/comedi/comedi_fops.c b/drivers/comedi/comedi_fops.c
index 55a0cae04b8d..e8a0142d5894 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 scnprintf(buf, PAGE_SIZE, "%u\n", size);
}

static ssize_t max_read_buffer_kb_store(struct device *csdev,
@@ -452,7 +452,7 @@ static ssize_t read_buffer_kb_show(struct device *csdev,
mutex_unlock(&dev->mutex);

comedi_dev_put(dev);
- return snprintf(buf, PAGE_SIZE, "%u\n", size);
+ return scnprintf(buf, PAGE_SIZE, "%u\n", size);
}

static ssize_t read_buffer_kb_store(struct device *csdev,
@@ -509,7 +509,7 @@ static ssize_t max_write_buffer_kb_show(struct device *csdev,
mutex_unlock(&dev->mutex);

comedi_dev_put(dev);
- return snprintf(buf, PAGE_SIZE, "%u\n", size);
+ return scnprintf(buf, PAGE_SIZE, "%u\n", size);
}

static ssize_t max_write_buffer_kb_store(struct device *csdev,
@@ -565,7 +565,7 @@ static ssize_t write_buffer_kb_show(struct device *csdev,
mutex_unlock(&dev->mutex);

comedi_dev_put(dev);
- return snprintf(buf, PAGE_SIZE, "%u\n", size);
+ return scnprintf(buf, PAGE_SIZE, "%u\n", size);
}

static ssize_t write_buffer_kb_store(struct device *csdev,
--
2.37.3


2022-09-27 06:28:35

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH 1/7] comedi: Convert snprintf() to scnprintf()

On Mon, Sep 26, 2022 at 07:37:37PM +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.
>
> Signed-off-by: Jules Irenge <[email protected]>
> ---
> drivers/comedi/comedi_fops.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/comedi/comedi_fops.c b/drivers/comedi/comedi_fops.c
> index 55a0cae04b8d..e8a0142d5894 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 scnprintf(buf, PAGE_SIZE, "%u\n", size);

Ick, no, you should use sysfs_emit() if you really want to change these
functions to "do the right thing".

thanks,

greg k-h

2022-09-28 13:34:59

by Jules Irenge

[permalink] [raw]
Subject: Re: [PATCH 1/7] comedi: Convert snprintf() to scnprintf()

On Tue, Sep 27, 2022 at 08:06:55AM +0200, Greg KH wrote:
> On Mon, Sep 26, 2022 at 07:37:37PM +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.
> >
> > Signed-off-by: Jules Irenge <[email protected]>
> > ---
> > drivers/comedi/comedi_fops.c | 8 ++++----
> > 1 file changed, 4 insertions(+), 4 deletions(-)
> >
> > diff --git a/drivers/comedi/comedi_fops.c b/drivers/comedi/comedi_fops.c
> > index 55a0cae04b8d..e8a0142d5894 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 scnprintf(buf, PAGE_SIZE, "%u\n", size);
>
> Ick, no, you should use sysfs_emit() if you really want to change these
> functions to "do the right thing".
>
> thanks,
>
> greg k-h

Thanks for feedback.

I just sent a different version.

I will appreciate any more feedback.

Thanks,

Jules

2022-09-28 16:18:27

by Ian Abbott

[permalink] [raw]
Subject: Re: [PATCH 1/7] comedi: Convert snprintf() to scnprintf()

On 27/09/2022 07:06, Greg KH wrote:
> On Mon, Sep 26, 2022 at 07:37:37PM +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.
>>
>> Signed-off-by: Jules Irenge <[email protected]>
>> ---
>> drivers/comedi/comedi_fops.c | 8 ++++----
>> 1 file changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/comedi/comedi_fops.c b/drivers/comedi/comedi_fops.c
>> index 55a0cae04b8d..e8a0142d5894 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 scnprintf(buf, PAGE_SIZE, "%u\n", size);
>
> Ick, no, you should use sysfs_emit() if you really want to change these
> functions to "do the right thing".

There was a patch to do that by Xuezhi Zhang. It got to PATCH v4. I
should have replied with a "Reviewed-By" tag, but I'd already done that
for the earlier versions.

https://lore.kernel.org/lkml/[email protected]/

--
-=( Ian Abbott <[email protected]> || MEV Ltd. is a company )=-
-=( registered in England & Wales. Regd. number: 02862268. )=-
-=( Regd. addr.: S11 & 12 Building 67, Europa Business Park, )=-
-=( Bird Hall Lane, STOCKPORT, SK3 0XA, UK. || http://www.mev.co.uk )=-

2022-09-28 19:11:45

by Jules Irenge

[permalink] [raw]
Subject: Re: [PATCH 1/7] comedi: Convert snprintf() to scnprintf()

On Wed, Sep 28, 2022 at 04:45:53PM +0100, Ian Abbott wrote:
> On 27/09/2022 07:06, Greg KH wrote:
> > On Mon, Sep 26, 2022 at 07:37:37PM +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.
> > >
> > > Signed-off-by: Jules Irenge <[email protected]>
> > > ---
> > > drivers/comedi/comedi_fops.c | 8 ++++----
> > > 1 file changed, 4 insertions(+), 4 deletions(-)
> > >
> > > diff --git a/drivers/comedi/comedi_fops.c b/drivers/comedi/comedi_fops.c
> > > index 55a0cae04b8d..e8a0142d5894 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 scnprintf(buf, PAGE_SIZE, "%u\n", size);
> >
> > Ick, no, you should use sysfs_emit() if you really want to change these
> > functions to "do the right thing".
>
> There was a patch to do that by Xuezhi Zhang. It got to PATCH v4. I should
> have replied with a "Reviewed-By" tag, but I'd already done that for the
> earlier versions.
>
> https://lore.kernel.org/lkml/[email protected]/
>
Great, it's good to know how to fix the warning anyway.

Thanks,
Jules