2022-10-13 12:35:05

by Matti Vaittinen

[permalink] [raw]
Subject: [PATCH] tools: iio: iio_utils: fix digit calculation

The iio_utils uses a digit calculation in order to know length of the
file name containing a buffer number. The digit calculation does not
work for number 0.

This leads to allocation of one character too small buffer for the
file-name when file name contains value '0'. (Eg. buffer0).

Fix digit calculation by returning one digit to be present for number
'0'.

Fixes: 096f9b862e60 ("tools:iio:iio_utils: implement digit calculation")
Signed-off-by: Matti Vaittinen <[email protected]>
---
tools/iio/iio_utils.c | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/tools/iio/iio_utils.c b/tools/iio/iio_utils.c
index aadee6d34c74..8d35893b2fa8 100644
--- a/tools/iio/iio_utils.c
+++ b/tools/iio/iio_utils.c
@@ -547,6 +547,10 @@ static int calc_digits(int num)
{
int count = 0;

+ /* It takes a digit to represent zero */
+ if (!num)
+ return 1;
+
while (num != 0) {
num /= 10;
count++;

base-commit: 4fe89d07dcc2804c8b562f6c7896a45643d34b2f
--
2.37.3


--
Matti Vaittinen, Linux device drivers
ROHM Semiconductors, Finland SWDC
Kiviharjunlenkki 1E
90220 OULU
FINLAND

~~~ "I don't think so," said Rene Descartes. Just then he vanished ~~~
Simon says - in Latin please.
~~~ "non cogito me" dixit Rene Descarte, deinde evanescavit ~~~
Thanks to Simon Glass for the translation =]


Attachments:
(No filename) (1.32 kB)
signature.asc (499.00 B)
Download all attachments

2022-10-16 16:57:32

by Jonathan Cameron

[permalink] [raw]
Subject: Re: [PATCH] tools: iio: iio_utils: fix digit calculation

On Thu, 13 Oct 2022 15:04:04 +0300
Matti Vaittinen <[email protected]> wrote:

> The iio_utils uses a digit calculation in order to know length of the
> file name containing a buffer number. The digit calculation does not
> work for number 0.
>
> This leads to allocation of one character too small buffer for the
> file-name when file name contains value '0'. (Eg. buffer0).
>
> Fix digit calculation by returning one digit to be present for number
> '0'.
>
> Fixes: 096f9b862e60 ("tools:iio:iio_utils: implement digit calculation")
> Signed-off-by: Matti Vaittinen <[email protected]>
hi Matti

Makes sense.

Applied to the fixes-togreg branch of iio.git and marked for stable.


Thanks,

Jonathan

> ---
> tools/iio/iio_utils.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/tools/iio/iio_utils.c b/tools/iio/iio_utils.c
> index aadee6d34c74..8d35893b2fa8 100644
> --- a/tools/iio/iio_utils.c
> +++ b/tools/iio/iio_utils.c
> @@ -547,6 +547,10 @@ static int calc_digits(int num)
> {
> int count = 0;
>
> + /* It takes a digit to represent zero */
> + if (!num)
> + return 1;
> +
> while (num != 0) {
> num /= 10;
> count++;
>
> base-commit: 4fe89d07dcc2804c8b562f6c7896a45643d34b2f