Re: [PATCH] RDMA/mthca: Fix off-by-one in mthca_map_user_db()
From: Chenguang Zhao
Date: Sun Oct 25 2026 - 22:49:16 EST
On Fri, Oct 23, 2026 at 10:23:48PM +0300, Serhat Kumral wrote:
> db_tab->page[] has uarc_size / MTHCA_ICM_PAGE_SIZE elements, so valid
> doorbell indices are in the range [0, uarc_size / 8 - 1]. Allowing
> index == uarc_size / 8 results in an out-of-bounds access at
> db_tab->page[npages]. Use '>=' instead of '>' in the bounds check.
>
> Fixes: 56483ec1b702 ("[PATCH] IB uverbs: add mthca user doorbell record support")
> Signed-off-by: Serhat Kumral <serhatkumral1@xxxxxxxxx>
> ---
> drivers/infiniband/hw/mthca/mthca_memfree.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/infiniband/hw/mthca/mthca_memfree.c b/drivers/infiniband/hw/mthca/mthca_memfree.c
> index 9c5eb03f354d..39d82dc73807 100644
> --- a/drivers/infiniband/hw/mthca/mthca_memfree.c
> +++ b/drivers/infiniband/hw/mthca/mthca_memfree.c
> @@ -453,7 +453,7 @@ int mthca_map_user_db(struct mthca_dev *dev, struct mthca_uar *uar,
> if (!mthca_is_memfree(dev))
> return 0;
>
> - if (index < 0 || index > dev->uar_table.uarc_size / 8)
> + if (index < 0 || index >= dev->uar_table.uarc_size / 8)
> return -EINVAL;
>
> mutex_lock(&db_tab->mutex);
> --
> 2.53.0
>
LGTM
Reviewed-by: Chenguang Zhao <zhaochenguang@xxxxxxxxxx>
Thanks
Chenguang