From d5ffabca7219fbd433167f34fef90d0d3e723213 Mon Sep 17 00:00:00 2001 From: Konrad Sztyber Date: Wed, 22 Jan 2020 14:52:49 +0100 Subject: [PATCH] bdev/ocssd: verify namespace population in notification cb Each namespace should be checked if it is populated when handling chunk notifications. Otherwise we risk segfaulting if a namespace gets depopulated before the notification callback is executed. Change-Id: Ic55104a52087b1ea7090eeaede3e2221682cd331 Signed-off-by: Konrad Sztyber Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/482410 Reviewed-by: Mateusz Kozlowski Reviewed-by: Tomasz Zawadzki Reviewed-by: Jim Harris Reviewed-by: Paul Luse Tested-by: SPDK CI Jenkins --- module/bdev/nvme/bdev_ocssd.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/module/bdev/nvme/bdev_ocssd.c b/module/bdev/nvme/bdev_ocssd.c index eeb61e0be0..8c8ce47895 100644 --- a/module/bdev/nvme/bdev_ocssd.c +++ b/module/bdev/nvme/bdev_ocssd.c @@ -918,7 +918,8 @@ bdev_ocssd_handle_chunk_notification(struct nvme_bdev_ctrlr *nvme_bdev_ctrlr) uint32_t nsid; for (nsid = 0; nsid < nvme_bdev_ctrlr->num_ns; ++nsid) { - if (nvme_bdev_ctrlr->namespaces[nsid] == NULL) { + if (nvme_bdev_ctrlr->namespaces[nsid] == NULL || + !nvme_bdev_ctrlr->namespaces[nsid]->populated) { continue; }