Blob Blame History Raw
From: Parav Pandit <parav@mellanox.com>
Date: Fri, 21 Sep 2018 09:18:24 -0500
Subject: RDMA/core: Check error status of rdma_find_ndev_for_src_ip_rcu
Patch-mainline: v4.20-rc1
Git-commit: fe33507ec38a8b2e8b782b83669943b7a5fefd4c
References: bsc#1103992 FATE#326009

rdma_find_ndev_for_src_ip_rcu() returns either valid netdev pointer or
ERR_PTR().  Instead of checking for NULL, check for error.

Fixes: caf1e3ae9fa6 ("RDMA/core Introduce and use rdma_find_ndev_for_src_ip_rcu")
Reported-by: syzbot+20c32fa6ff84a2d28c36@syzkaller.appspotmail.com
Signed-off-by: Parav Pandit <parav@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Acked-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
---
 drivers/infiniband/core/addr.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/infiniband/core/addr.c
+++ b/drivers/infiniband/core/addr.c
@@ -513,7 +513,7 @@ static int rdma_set_src_addr_rcu(struct
 		 * loopback IP address.
 		 */
 		ndev = rdma_find_ndev_for_src_ip_rcu(dev_net(ndev), dst_in);
-		if (!ndev)
+		if (IS_ERR(ndev))
 			return -ENODEV;
 	}