From e15a704e2f251bdd7f1a1db048d606d59587e7f0 Mon Sep 17 00:00:00 2001 From: Daniel Verkamp Date: Wed, 23 Nov 2016 10:43:58 -0700 Subject: [PATCH] nvme/rdma: fix nvme_rdma_qpair_destroy() NULL check Verify that qpair is not NULL before doing pointer math on it. The NULL check after calling nvme_rdma_qpair(qpair) would not trigger if qpair was NULL. Fixes a crash if the Connect command failed, causing nvme_rdma_ctrlr_create_qpair() to return NULL. Change-Id: I158a5b1752892a7d5a72a9ac20c0c5b2cd781a81 Signed-off-by: Daniel Verkamp --- lib/nvme/nvme_rdma.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/nvme/nvme_rdma.c b/lib/nvme/nvme_rdma.c index 388b1a9b4..7c5e4e939 100644 --- a/lib/nvme/nvme_rdma.c +++ b/lib/nvme/nvme_rdma.c @@ -1035,11 +1035,12 @@ nvme_rdma_qpair_destroy(struct spdk_nvme_qpair *qpair) { struct nvme_rdma_qpair *rqpair; - rqpair = nvme_rdma_qpair(qpair); - if (!rqpair) { + if (!qpair) { return -1; } + rqpair = nvme_rdma_qpair(qpair); + nvme_rdma_free_reqs(rqpair); nvme_rdma_free_rsps(rqpair);