vhost: fix indirect descriptors table translation size
authorMaxime Coquelin <maxime.coquelin@redhat.com>
Tue, 23 Jan 2018 08:51:29 +0000 (09:51 +0100)
committerMaxime Coquelin <maxime.coquelin@redhat.com>
Mon, 23 Apr 2018 14:04:30 +0000 (16:04 +0200)
This patch fixes the size passed at the indirect descriptor
table translation time, which is the len field of the descriptor,
and not a single descriptor.

This issue has been assigned CVE-2018-1059.

Fixes: 62fdb8255ae7 ("vhost: use the guest IOVA to host VA helper")

Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
lib/librte_vhost/virtio_net.c

index ed7198d..108f4de 100644 (file)
@@ -1261,7 +1261,7 @@ rte_vhost_dequeue_burst(int vid, uint16_t queue_id,
                        desc = (struct vring_desc *)(uintptr_t)
                                vhost_iova_to_vva(dev, vq,
                                                vq->desc[desc_indexes[i]].addr,
-                                               sizeof(*desc),
+                                               vq->desc[desc_indexes[i]].len,
                                                VHOST_ACCESS_RO);
                        if (unlikely(!desc))
                                break;