Commit db3fda2e authored by Cunyin Chang's avatar Cunyin Chang Committed by Daniel Verkamp
Browse files

nvme: handle NULL ioq array in nvme_ctrlr_destruct()



Fix a potential segmentation fault issue.

Change-Id: I39d2cd1850265ca0dfa987995011563cadeb5bb5
Signed-off-by: default avatarCunyin Chang <cunyin.chang@intel.com>
parent 55d9ff6a
Loading
Loading
Loading
Loading
+8 −5
Original line number Diff line number Diff line
@@ -397,10 +397,12 @@ nvme_ctrlr_fail(struct spdk_nvme_ctrlr *ctrlr)

	ctrlr->is_failed = true;
	nvme_qpair_fail(&ctrlr->adminq);
	if (ctrlr->ioq) {
		for (i = 0; i < ctrlr->opts.num_io_queues; i++) {
			nvme_qpair_fail(&ctrlr->ioq[i]);
		}
	}
}

static int
nvme_ctrlr_wait_for_ready(struct spdk_nvme_ctrlr *ctrlr, int desired_ready_value)
@@ -1029,10 +1031,11 @@ nvme_ctrlr_destruct(struct spdk_nvme_ctrlr *ctrlr)
	nvme_ctrlr_shutdown(ctrlr);

	nvme_ctrlr_destruct_namespaces(ctrlr);

	if (ctrlr->ioq) {
		for (i = 0; i < ctrlr->opts.num_io_queues; i++) {
			nvme_qpair_destroy(&ctrlr->ioq[i]);
		}
	}

	free(ctrlr->ioq);