[dpdk-dev] [PATCH v3 2/5] examples/vhost_scsi: fix missing NULL-check for parameter

Bruce Richardson bruce.richardson at intel.com
Mon Apr 8 11:46:37 CEST 2019


Coverity points out that there is a check in the main thread loop for the
ctrlr->bdev being NULL, but by that stage the pointer has already been
dereferenced. Therefore, for safety, before we enter the loop do an
initial check on the parameter structure.

Coverity issue: 158657
Fixes: db75c7af19bb ("examples/vhost_scsi: introduce a new sample app")
CC: stable at dpdk.org
CC: Maxime Coquelin <maxime.coquelin at redhat.com>
CC: Tiwei Bie <tiwei.bie at intel.com>
CC: Zhihong Wang <zhihong.wang at intel.com>

Signed-off-by: Bruce Richardson <bruce.richardson at intel.com>
---
 examples/vhost_scsi/vhost_scsi.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/examples/vhost_scsi/vhost_scsi.c b/examples/vhost_scsi/vhost_scsi.c
index 2908ff68b..513af0cca 100644
--- a/examples/vhost_scsi/vhost_scsi.c
+++ b/examples/vhost_scsi/vhost_scsi.c
@@ -285,6 +285,12 @@ ctrlr_worker(void *arg)
 	cpu_set_t cpuset;
 	pthread_t thread;
 
+	if (ctrlr == NULL || ctrlr->bdev == NULL) {
+		fprintf(stderr, "%s: Error, invalid argument passed to worker thread\n",
+				__func__);
+		exit(0);
+	}
+
 	thread = pthread_self();
 	CPU_ZERO(&cpuset);
 	CPU_SET(0, &cpuset);
-- 
2.20.1



More information about the dev mailing list