summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorSagi Grimberg <sagi@grimberg.me>2017-11-26 15:31:04 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2018-01-23 19:58:12 +0100
commit9ace222b5db287645bbe6c5531201750d3fbe493 (patch)
tree9751a9c1d8061d70638f8d6c131ef3f60a3476d2 /drivers
parent754705d8e0e12c05310117dd42ff3eb2681365fd (diff)
downloadlinux-9ace222b5db287645bbe6c5531201750d3fbe493.tar.gz
linux-9ace222b5db287645bbe6c5531201750d3fbe493.tar.bz2
linux-9ace222b5db287645bbe6c5531201750d3fbe493.zip
iser-target: Fix possible use-after-free in connection establishment error
commit cd52cb26e7ead5093635e98e07e221e4df482d34 upstream. In case we fail to establish the connection we must drain our pre-posted login recieve work request before continuing safely with connection teardown. Fixes: a060b5629ab0 ("IB/core: generic RDMA READ/WRITE API") Reported-by: Amrani, Ram <Ram.Amrani@cavium.com> Signed-off-by: Sagi Grimberg <sagi@grimberg.me> Signed-off-by: Doug Ledford <dledford@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/infiniband/ulp/isert/ib_isert.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/infiniband/ulp/isert/ib_isert.c b/drivers/infiniband/ulp/isert/ib_isert.c
index ceabdb85df8b..9d4785ba24cb 100644
--- a/drivers/infiniband/ulp/isert/ib_isert.c
+++ b/drivers/infiniband/ulp/isert/ib_isert.c
@@ -741,6 +741,7 @@ isert_connect_error(struct rdma_cm_id *cma_id)
{
struct isert_conn *isert_conn = cma_id->qp->qp_context;
+ ib_drain_qp(isert_conn->qp);
list_del_init(&isert_conn->node);
isert_conn->cm_id = NULL;
isert_put_conn(isert_conn);