Re: [PATCH] iio: imu: adis16480: clean up a condition

From: Dan Carpenter
Date: Mon Oct 07 2019 - 10:18:55 EST


On Mon, Oct 07, 2019 at 10:21:07AM +0100, Jonathan Cameron wrote:
> On Sun, 6 Oct 2019 21:14:40 +0300
> Dan Carpenter <dan.carpenter@xxxxxxxxxx> wrote:
>
> > On Sun, Oct 06, 2019 at 09:51:33AM +0100, Jonathan Cameron wrote:
> > > On Thu, 26 Sep 2019 14:36:30 +0300
> > > Dan Carpenter <dan.carpenter@xxxxxxxxxx> wrote:
> > >
> > > > On Thu, Sep 26, 2019 at 11:06:39AM +0000, Ardelean, Alexandru wrote:
> > > > > On Thu, 2019-09-26 at 11:10 +0300, Dan Carpenter wrote:
> > > > > > [External]
> > > > > >
> > > > > > The "t" variable is unsigned so it can't be less than zero. We really
> > > > > > are just trying to prevent divide by zero bugs so just checking against
> > > > > > zero is sufficient.
> > >
> > > I'm not sure that true. It if were signed we'd be detecting that the
> > > input from userspace was negative.
> >
> > It does a really bad job of that though so it raises more questions than
> > answers. Maybe just one of the parameters is negative or maybe the
> > multiply or the addition overflowed? Should scenarios those be checked?
> >
> > It turns out none of those situations matter, only divide by zero needs
> > to be checked.
>
> It isn't being nearly paranoid enough. Either val or val2 being
> negative is a reason to fault out. Divide by zero needs handling after
> that. Obviously divide by zero is the only one that causes a crash but
> negatives are going to cause rather 'unexpected' results.

The result is that it gets capped at st->chip_info->max_dec_rate so it's
not a horrible result. :P I don't know if it's unexpected or not.

regards,
dan carpenter