Re: [PATCH][next] io_uring: fix incorrect check for kvmalloc failure

From: Pavel Begunkov
Date: Mon Apr 26 2021 - 06:05:10 EST


On 4/26/21 10:37 AM, Colin King wrote:
> From: Colin Ian King <colin.king@xxxxxxxxxxxxx>
>
> Currently imu is being allocated but the kvmalloc failure is checking
> imu->bvec instead of imu. Fix this by checking imu for null.

Right, that's buggy.

fwiw, was reported by lkp and I sent a fix yesterday, so take any.
https://lore.kernel.org/io-uring/d28eb1bc4384284f69dbce35b9f70c115ff6176f.1619392565.git.asml.silence@xxxxxxxxx/T/#u


>
> Addresses-Coverity: ("Array compared against 0")
> Fixes: 41edf1a5ec96 ("io_uring: keep table of pointers to ubufs")
> Signed-off-by: Colin Ian King <colin.king@xxxxxxxxxxxxx>
> ---
> fs/io_uring.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/io_uring.c b/fs/io_uring.c
> index 57a64c7e0e69..f4ec092c23f4 100644
> --- a/fs/io_uring.c
> +++ b/fs/io_uring.c
> @@ -8269,7 +8269,7 @@ static int io_sqe_buffer_register(struct io_ring_ctx *ctx, struct iovec *iov,
> goto done;
>
> imu = kvmalloc(struct_size(imu, bvec, nr_pages), GFP_KERNEL);
> - if (!imu->bvec)
> + if (!imu)
> goto done;
>
> ret = 0;
>

--
Pavel Begunkov