nvme_manage: assert ns not being NULL when displaying namespaces

Assert that spdk_nvme_ctrlr_get_ns() does not return NULL.
If display_namespace() would proceed with ns == NULL,
functions below will segfault since the input is not verified there.

Change-Id: I12c4b617aca703f07275fbc6ab593b42c25e2ccd
Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/451830
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
This commit is contained in:
Tomasz Zawadzki 2019-04-23 22:16:51 -04:00 committed by Jim Harris
parent 5a484d4ab8
commit 8bab99fb6e

View File

@ -223,6 +223,7 @@ display_namespace(struct spdk_nvme_ns *ns)
static void
display_controller(struct dev *dev, int model)
{
struct spdk_nvme_ns *ns;
const struct spdk_nvme_ctrlr_data *cdata;
uint8_t str[128];
uint32_t nsid;
@ -268,7 +269,9 @@ display_controller(struct dev *dev, int model)
printf("============================\n");
for (nsid = spdk_nvme_ctrlr_get_first_active_ns(dev->ctrlr);
nsid != 0; nsid = spdk_nvme_ctrlr_get_next_active_ns(dev->ctrlr, nsid)) {
display_namespace(spdk_nvme_ctrlr_get_ns(dev->ctrlr, nsid));
ns = spdk_nvme_ctrlr_get_ns(dev->ctrlr, nsid);
assert(ns != NULL);
display_namespace(ns);
}
}