]> git.baikalelectronics.ru Git - kernel.git/commitdiff
vsock/virtio: suppress used length validation
authorMichael S. Tsirkin <mst@redhat.com>
Mon, 22 Nov 2021 09:32:01 +0000 (04:32 -0500)
committerDavid S. Miller <davem@davemloft.net>
Mon, 22 Nov 2021 14:49:03 +0000 (14:49 +0000)
It turns out that vhost vsock violates the virtio spec
by supplying the out buffer length in the used length
(should just be the in length).
As a result, attempts to validate the used length fail with:
vmw_vsock_virtio_transport virtio1: tx: used len 44 is larger than in buflen 0

Since vsock driver does not use the length fox tx and
validates the length before use for rx, it is safe to
suppress the validation in virtio core for this driver.

Reported-by: Halil Pasic <pasic@linux.ibm.com>
Fixes: f575a3e0ac95 ("virtio_ring: validate used buffer length")
Cc: "Jason Wang" <jasowang@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/vmw_vsock/virtio_transport.c

index 4f7c99dfd16cfeeaca42355366540ea99c9e83ea..3f82b2f1e6ddcd0438a7ecf2c0b342f4e2bc8e4b 100644 (file)
@@ -731,6 +731,7 @@ static unsigned int features[] = {
 static struct virtio_driver virtio_vsock_driver = {
        .feature_table = features,
        .feature_table_size = ARRAY_SIZE(features),
+       .suppress_used_validation = true,
        .driver.name = KBUILD_MODNAME,
        .driver.owner = THIS_MODULE,
        .id_table = id_table,