diff options
author | Raphael Norwitz | 2019-06-12 02:35:17 +0200 |
---|---|---|
committer | Stefan Hajnoczi | 2019-08-22 17:52:23 +0200 |
commit | 5d4c1ed3d46d7e2010b389fe5f3376f605182ab0 (patch) | |
tree | 9eeff9b62118cf89b6b8cadc27a1bbb9c6d5a031 | |
parent | util/async: hold AioContext ref to prevent use-after-free (diff) | |
download | qemu-5d4c1ed3d46d7e2010b389fe5f3376f605182ab0.tar.gz qemu-5d4c1ed3d46d7e2010b389fe5f3376f605182ab0.tar.xz qemu-5d4c1ed3d46d7e2010b389fe5f3376f605182ab0.zip |
vhost-user-scsi: prevent using uninitialized vqs
Of the 3 virtqueues, seabios only sets cmd, leaving ctrl
and event without a physical address. This can cause
vhost_verify_ring_part_mapping to return ENOMEM, causing
the following logs:
qemu-system-x86_64: Unable to map available ring for ring 0
qemu-system-x86_64: Verify ring failure on region 0
The qemu commit e6cc11d64fc998c11a4dfcde8fda3fc33a74d844
has already resolved the issue for vhost scsi devices but
the fix was never applied to vhost-user scsi devices.
Signed-off-by: Raphael Norwitz <raphael.norwitz@nutanix.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-id: 1560299717-177734-1-git-send-email-raphael.norwitz@nutanix.com
Message-Id: <1560299717-177734-1-git-send-email-raphael.norwitz@nutanix.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
-rw-r--r-- | hw/scsi/vhost-user-scsi.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/hw/scsi/vhost-user-scsi.c b/hw/scsi/vhost-user-scsi.c index 31c9d34637..6a6c15dd32 100644 --- a/hw/scsi/vhost-user-scsi.c +++ b/hw/scsi/vhost-user-scsi.c @@ -93,7 +93,7 @@ static void vhost_user_scsi_realize(DeviceState *dev, Error **errp) } vsc->dev.nvqs = 2 + vs->conf.num_queues; - vsc->dev.vqs = g_new(struct vhost_virtqueue, vsc->dev.nvqs); + vsc->dev.vqs = g_new0(struct vhost_virtqueue, vsc->dev.nvqs); vsc->dev.vq_index = 0; vsc->dev.backend_features = 0; vqs = vsc->dev.vqs; |