summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorCornelia Huck <cornelia.huck@de.ibm.com>2013-03-26 17:32:44 +0100
committerCornelia Huck <cornelia.huck@de.ibm.com>2013-03-26 18:04:24 +0100
commitb57ed9bf075e33cdd2f9eb545ff555301dd57221 (patch)
tree6d09ebd2d0fcd28465d9838452ae680b05b92699
parente769bdc26ded6d7681cddd9f67c5f87a4b5ba53c (diff)
downloadfocaccia-qemu-b57ed9bf075e33cdd2f9eb545ff555301dd57221.tar.gz
focaccia-qemu-b57ed9bf075e33cdd2f9eb545ff555301dd57221.zip
virtio-ccw: Queue sanity check for notify hypercall.
Verify that the virtio-ccw notify hypercall passed a reasonable
value for queue.

Cc: qemu-stable@nongnu.org
Reported-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
-rw-r--r--hw/s390x/s390-virtio-ccw.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
index d4364143ea..76b63e2ca6 100644
--- a/hw/s390x/s390-virtio-ccw.c
+++ b/hw/s390x/s390-virtio-ccw.c
@@ -31,6 +31,9 @@ static int virtio_ccw_hcall_notify(const uint64_t *args)
     if (!sch || !css_subch_visible(sch)) {
         return -EINVAL;
     }
+    if (queue >= VIRTIO_PCI_QUEUE_MAX) {
+        return -EINVAL;
+    }
     virtio_queue_notify(virtio_ccw_get_vdev(sch), queue);
     return 0;