Re: [PATCH v11 09/15] iio: afe: rescale: reduce risk of integer overflow
From: Andy Shevchenko <hidden>
Date: 2021-12-22 12:31:06
Also in:
linux-iio, lkml
From: Andy Shevchenko <hidden>
Date: 2021-12-22 12:31:06
Also in:
linux-iio, lkml
On Wed, Dec 22, 2021 at 5:47 AM Liam Beguin [off-list ref] wrote:
From: Liam Beguin <redacted> Reduce the risk of integer overflow by doing the scale calculation on a 64-bit integer. Since the rescaling is only performed on *val, reuse the IIO_VAL_FRACTIONAL_LOG2 case.
...
- tmp = 1 << *val2;
At some point this should be BIT() Rule of thumb (in accordance with C standard), always use unsigned value as left operand of the _left_ shift.
+ if (scale_type == IIO_VAL_FRACTIONAL) + tmp = *val2; + else + tmp = 1 << *val2;
-- With Best Regards, Andy Shevchenko