On Wed, Dec 22, 2021 at 5:47 AM Liam Beguin <liambeguin@xxxxxxxxx> wrote: > > From: Liam Beguin <lvb@xxxxxxxxxx> > > 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