From 8bab99fb6eaf7be3d0c5c4cb089423c887054f80 Mon Sep 17 00:00:00 2001 From: Tomasz Zawadzki Date: Tue, 23 Apr 2019 22:16:51 -0400 Subject: [PATCH] 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 Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/451830 Tested-by: SPDK CI Jenkins Reviewed-by: Darek Stojaczyk Reviewed-by: Jim Harris --- examples/nvme/nvme_manage/nvme_manage.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/examples/nvme/nvme_manage/nvme_manage.c b/examples/nvme/nvme_manage/nvme_manage.c index bf5deb2f2..4e2c991ae 100644 --- a/examples/nvme/nvme_manage/nvme_manage.c +++ b/examples/nvme/nvme_manage/nvme_manage.c @@ -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); } }