]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
vhost: do not try to access device IOTLB when not initialized
authorJason Wang <jasowang@redhat.com>
Tue, 23 Jan 2018 09:27:26 +0000 (17:27 +0800)
committerDavid S. Miller <davem@davemloft.net>
Wed, 24 Jan 2018 21:55:38 +0000 (16:55 -0500)
The code will try to access dev->iotlb when processing
VHOST_IOTLB_INVALIDATE even if it was not initialized which may lead
to NULL pointer dereference. Fixes this by check dev->iotlb before.

Fixes: 6b1e6cc7855b0 ("vhost: new device IOTLB API")
Signed-off-by: Jason Wang <jasowang@redhat.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/vhost/vhost.c

index 549771a0cd8b90d087034823c6404412658839c0..5727b186b3ca56b6d43249bc69eb7f962bd22308 100644 (file)
@@ -1015,6 +1015,10 @@ static int vhost_process_iotlb_msg(struct vhost_dev *dev,
                vhost_iotlb_notify_vq(dev, msg);
                break;
        case VHOST_IOTLB_INVALIDATE:
+               if (!dev->iotlb) {
+                       ret = -EFAULT;
+                       break;
+               }
                vhost_vq_meta_reset(dev);
                vhost_del_umem_range(dev->iotlb, msg->iova,
                                     msg->iova + msg->size - 1);