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

From: Tejun Heo
Date: Wed Apr 10 2024 - 15:54:06 EST


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.

Thanks.

--
tejun