aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/core/cm.c
diff options
context:
space:
mode:
authorLeon Romanovsky <leonro@mellanox.com>2018-01-28 11:25:33 +0200
committerJason Gunthorpe <jgg@mellanox.com>2018-01-28 14:07:16 -0700
commit925f7ea7a6ba2d434f01662a4171867c26bda66a (patch)
treed3f7cbcea3ddf88f2120ee15ecf7d6f9ee641539 /drivers/infiniband/core/cm.c
parentRDMA/cma: Use existing netif_is_bond_master function (diff)
downloadlinux-dev-925f7ea7a6ba2d434f01662a4171867c26bda66a.tar.xz
linux-dev-925f7ea7a6ba2d434f01662a4171867c26bda66a.zip
RDMA/cm: Fix access to uninitialized variable
The ndev will be initialized and held only for successful ib_get_cached_gid(), otherwise it is garbage stack memory. Calling dev_put() in failure path is wrong. Fixes: 16c72e402867 ("IB/cm: Refactor to avoid setting path record software only fields") Signed-off-by: Parav Pandit <parav@mellanox.com> Signed-off-by: Leon Romanovsky <leonro@mellanox.com> Reviewed-by: Yuval Shaia <yuval.shaia@oracle.com> Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Diffstat (limited to 'drivers/infiniband/core/cm.c')
-rw-r--r--drivers/infiniband/core/cm.c2
1 files changed, 0 insertions, 2 deletions
diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c
index 68df93558d80..e6749157fd86 100644
--- a/drivers/infiniband/core/cm.c
+++ b/drivers/infiniband/core/cm.c
@@ -1901,8 +1901,6 @@ static int cm_req_handler(struct cm_work *work)
grh->sgid_index,
&gid, &gid_attr);
if (ret) {
- if (gid_attr.ndev)
- dev_put(gid_attr.ndev);
ib_send_cm_rej(cm_id, IB_CM_REJ_UNSUPPORTED, NULL, 0, NULL, 0);
goto rejected;
}