RDMA/core: Check error status of rdma_find_ndev_for_src_ip_rcu
authorParav Pandit <parav@mellanox.com>
Fri, 21 Sep 2018 14:18:24 +0000 (09:18 -0500)
committerJason Gunthorpe <jgg@mellanox.com>
Thu, 4 Oct 2018 02:47:41 +0000 (20:47 -0600)
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>
drivers/infiniband/core/addr.c

index 1400a9d..07e0ffe 100644 (file)
@@ -513,7 +513,7 @@ static int rdma_set_src_addr_rcu(struct rdma_dev_addr *dev_addr,
                 * loopback IP address.
                 */
                ndev = rdma_find_ndev_for_src_ip_rcu(dev_net(ndev), dst_in);
-               if (!ndev)
+               if (IS_ERR(ndev))
                        return -ENODEV;
        }