RE: [PATCH] RDMA/irdma: Fix potential NULL-ptr-dereference

From: Devale, Sindhu
Date: Fri Jan 27 2023 - 10:39:09 EST




> -----Original Message-----
> From: Nikita Zhandarovich <n.zhandarovich@xxxxxxxxxx>
> Sent: Thursday, January 26, 2023 12:53 PM
> To: Ismail, Mustafa <mustafa.ismail@xxxxxxxxx>
> Cc: Nikita Zhandarovich <n.zhandarovich@xxxxxxxxxx>; Saleem, Shiraz
> <shiraz.saleem@xxxxxxxxx>; Jason Gunthorpe <jgg@xxxxxxxx>; Leon
> Romanovsky <leon@xxxxxxxxxx>; linux-rdma@xxxxxxxxxxxxxxx; linux-
> kernel@xxxxxxxxxxxxxxx; lvc-project@xxxxxxxxxxxxxxxx
> Subject: [PATCH] RDMA/irdma: Fix potential NULL-ptr-dereference
>
> in_dev_get() can return NULL which will cause a failure once idev is
> dereferenced in in_dev_for_each_ifa_rtnl(). This patch adds a check for
> NULL value in idev beforehand.
>
> Found by Linux Verification Center (linuxtesting.org) with SVACE.
>
> Fixes: 146b9756f14c ("RDMA/irdma: Add connection manager")
> Signed-off-by: Nikita Zhandarovich <n.zhandarovich@xxxxxxxxxx>
>
> drivers/infiniband/hw/irdma/cm.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/infiniband/hw/irdma/cm.c
> b/drivers/infiniband/hw/irdma/cm.c
> index 7b086fe63a24..195aa9ea18b6 100644
> --- a/drivers/infiniband/hw/irdma/cm.c
> +++ b/drivers/infiniband/hw/irdma/cm.c
> @@ -1722,6 +1722,9 @@ static int irdma_add_mqh_4(struct irdma_device
> *iwdev,
> continue;
>
> idev = in_dev_get(ip_dev);
> + if (!idev)
> + continue;
> +
> in_dev_for_each_ifa_rtnl(ifa, idev) {
> ibdev_dbg(&iwdev->ibdev,
> "CM: Allocating child CM Listener
> forIP=%pI4, vlan_id=%d, MAC=%pM\n",

Change looks good. Thanks!

Reviewed-by: Sindhu Devale <sindhu.devale@xxxxxxxxx>