Re: [PATCH] blk-iocost: Fix shift-out-of-bounds in iocg_kick_delay()

From: Breno Leitao
Date: Thu Apr 11 2024 - 09:33:28 EST


On Wed, Apr 10, 2024 at 09:53:52AM -1000, Tejun Heo wrote:
> Hello, Breno.
>
> On Wed, Apr 10, 2024 at 12:36:41PM -0700, Breno Leitao wrote:
> > When running iocg_kick_delay(), iocg->delay_at could be way behind "now",
> > which causes a huge tdelta difference.
> >
> > The tdelta value is used to shift some bits around, raising the
> > following UBSAN splat:
> >
> > UBSAN: shift-out-of-bounds in block/blk-iocost.c:1366:23
> >
> > Debugging this, these are some values I got in my machine with 6.9-rc3.
> >
> > now = 3626064295
> > iocg->delay_at = 3275794093
> >
> > Fix this by validating that the shift if valid, otherwise bail out,
> > similarly to commit 2a427b49d029 ("blk-iocost: Fix an UBSAN
> > shift-out-of-bounds warning")
>
> Rik alreaady sent a fix:
>
> http://lkml.kernel.org/r/20240404123253.0f58010f@xxxxxxxxxxxxxxxxxxxx
>
> which got commited as beaa51b36012fad5a4d3c18b88a617aea7a9b96d.

Even easier then. Thanks!