nvme: handle NULL ioq array in nvme_ctrlr_destruct()
Fix a potential segmentation fault issue. Change-Id: I39d2cd1850265ca0dfa987995011563cadeb5bb5 Signed-off-by: Cunyin Chang <cunyin.chang@intel.com>
This commit is contained in:
parent
55d9ff6a66
commit
db3fda2e68
@ -397,8 +397,10 @@ nvme_ctrlr_fail(struct spdk_nvme_ctrlr *ctrlr)
|
|||||||
|
|
||||||
ctrlr->is_failed = true;
|
ctrlr->is_failed = true;
|
||||||
nvme_qpair_fail(&ctrlr->adminq);
|
nvme_qpair_fail(&ctrlr->adminq);
|
||||||
for (i = 0; i < ctrlr->opts.num_io_queues; i++) {
|
if (ctrlr->ioq) {
|
||||||
nvme_qpair_fail(&ctrlr->ioq[i]);
|
for (i = 0; i < ctrlr->opts.num_io_queues; i++) {
|
||||||
|
nvme_qpair_fail(&ctrlr->ioq[i]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1029,9 +1031,10 @@ nvme_ctrlr_destruct(struct spdk_nvme_ctrlr *ctrlr)
|
|||||||
nvme_ctrlr_shutdown(ctrlr);
|
nvme_ctrlr_shutdown(ctrlr);
|
||||||
|
|
||||||
nvme_ctrlr_destruct_namespaces(ctrlr);
|
nvme_ctrlr_destruct_namespaces(ctrlr);
|
||||||
|
if (ctrlr->ioq) {
|
||||||
for (i = 0; i < ctrlr->opts.num_io_queues; i++) {
|
for (i = 0; i < ctrlr->opts.num_io_queues; i++) {
|
||||||
nvme_qpair_destroy(&ctrlr->ioq[i]);
|
nvme_qpair_destroy(&ctrlr->ioq[i]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
free(ctrlr->ioq);
|
free(ctrlr->ioq);
|
||||||
|
Loading…
Reference in New Issue
Block a user