From 54f59263eb260c350da741cb0b34d935c80a3209 Mon Sep 17 00:00:00 2001 From: Daniel Verkamp Date: Mon, 23 Apr 2018 15:14:07 -0700 Subject: [PATCH] vhost/scsi: handle spdk_vhost_gpa_to_vva() failure One call to spdk_vhost_gpa_to_vva() was missing a return code check. Change-Id: I3581ade98f7fbf72419f8216718a17de50bac4b7 Signed-off-by: Daniel Verkamp Reviewed-on: https://review.gerrithub.io/408759 Tested-by: SPDK Automated Test System Reviewed-by: Changpeng Liu Reviewed-by: Dariusz Stojaczyk Reviewed-by: Pawel Wodkowski Reviewed-by: Jim Harris --- lib/vhost/vhost_scsi.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/vhost/vhost_scsi.c b/lib/vhost/vhost_scsi.c index 7005ef663..dcb5f98d1 100644 --- a/lib/vhost/vhost_scsi.c +++ b/lib/vhost/vhost_scsi.c @@ -326,6 +326,11 @@ process_ctrl_request(struct spdk_vhost_scsi_task *task) } ctrl_req = spdk_vhost_gpa_to_vva(vdev, desc->addr, sizeof(*ctrl_req)); + if (ctrl_req == NULL) { + SPDK_ERRLOG("%s: Invalid task management request at index %d.\n", + vdev->name, task->req_idx); + goto out; + } SPDK_DEBUGLOG(SPDK_LOG_VHOST_SCSI_QUEUE, "Processing controlq descriptor: desc %d/%p, desc_addr %p, len %d, flags %d, last_used_idx %d; kickfd %d; size %d\n",