diff options
author | Nikita Zhandarovich <n.zhandarovich@fintech.ru> | 2023-01-26 19:52:30 +0100 |
---|---|---|
committer | Leon Romanovsky <leon@kernel.org> | 2023-01-29 13:55:54 +0100 |
commit | 5d9745cead1f121974322b94ceadfb4d1e67960e (patch) | |
tree | c0a8998301ecb495a3b8d8c1e77859fa8ff83960 /drivers/infiniband | |
parent | IB/IPoIB: Fix legacy IPoIB due to wrong number of queues (diff) | |
download | linux-5d9745cead1f121974322b94ceadfb4d1e67960e.tar.xz linux-5d9745cead1f121974322b94ceadfb4d1e67960e.zip |
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@fintech.ru>
Link: https://lore.kernel.org/r/20230126185230.62464-1-n.zhandarovich@fintech.ru
Reviewed-by: Sindhu Devale <sindhu.devale@intel.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Diffstat (limited to 'drivers/infiniband')
-rw-r--r-- | drivers/infiniband/hw/irdma/cm.c | 3 |
1 files changed, 3 insertions, 0 deletions
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", |