diff --git a/lib/nvme/nvme_rdma.c b/lib/nvme/nvme_rdma.c index d2743d418..0c7c50308 100644 --- a/lib/nvme/nvme_rdma.c +++ b/lib/nvme/nvme_rdma.c @@ -1105,7 +1105,7 @@ struct spdk_nvme_ctrlr *nvme_rdma_ctrlr_construct(const struct spdk_nvme_transpo rc = nvme_ctrlr_construct(&rctrlr->ctrlr); if (rc != 0) { - nvme_ctrlr_destruct(&rctrlr->ctrlr); + free(rctrlr); return NULL; } @@ -1113,6 +1113,7 @@ struct spdk_nvme_ctrlr *nvme_rdma_ctrlr_construct(const struct spdk_nvme_transpo SPDK_NVMF_MIN_ADMIN_QUEUE_ENTRIES, 0, SPDK_NVMF_MIN_ADMIN_QUEUE_ENTRIES); if (!rctrlr->ctrlr.adminq) { SPDK_ERRLOG("failed to create admin qpair\n"); + nvme_rdma_ctrlr_destruct(&rctrlr->ctrlr); return NULL; }