From 71a1bbdd54de6bce95215d85144d0521a64a1213 Mon Sep 17 00:00:00 2001 From: Chunyang Hui Date: Wed, 23 Oct 2019 22:36:07 +0800 Subject: [PATCH] bdev/opal: Add check for strdup Change-Id: Ic3005bc0b854ed9e5ff4a2288c3715d1e79b1fb4 Signed-off-by: Chunyang Hui Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/472113 Reviewed-by: Tomasz Zawadzki Reviewed-by: Shuhei Matsumoto Reviewed-by: Jim Harris Tested-by: SPDK CI Jenkins --- module/bdev/nvme/vbdev_opal.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/module/bdev/nvme/vbdev_opal.c b/module/bdev/nvme/vbdev_opal.c index 413d1657a..1c4d0c8a8 100644 --- a/module/bdev/nvme/vbdev_opal.c +++ b/module/bdev/nvme/vbdev_opal.c @@ -372,7 +372,11 @@ spdk_vbdev_opal_create(const char *nvme_ctrlr_name, uint32_t nsid, uint8_t locki cfg = &opal_bdev->cfg; cfg->nvme_ctrlr_name = strdup(nvme_ctrlr_name); - assert(cfg->nvme_ctrlr_name != NULL); + if (!cfg->nvme_ctrlr_name) { + SPDK_ERRLOG("allocation for nvme_ctrlr_name failed\n"); + free(opal_bdev); + return -ENOMEM; + } cfg->locking_range_id = locking_range_id; cfg->range_start = range_start; @@ -427,7 +431,11 @@ spdk_vbdev_opal_create(const char *nvme_ctrlr_name, uint32_t nsid, uint8_t locki } opal_part_base->num_of_part = 0; opal_part_base->nvme_ctrlr_name = strdup(cfg->nvme_ctrlr_name); - assert(opal_part_base->nvme_ctrlr_name != NULL); + if (opal_part_base->nvme_ctrlr_name == NULL) { + vbdev_opal_free_bdev(opal_bdev); + spdk_bdev_part_base_free(opal_part_base->part_base); + return -ENOMEM; + } cfg->opal_base = opal_part_base; TAILQ_INSERT_TAIL(&g_opal_base, opal_part_base, tailq);