vhost/net: length miscalculation
authorMichael S. Tsirkin <mst@redhat.com>
Wed, 7 Jan 2015 08:51:00 +0000 (10:51 +0200)
committerMichael S. Tsirkin <mst@redhat.com>
Wed, 7 Jan 2015 10:22:00 +0000 (12:22 +0200)
commit99975cc6ada0d5f2675e83abecae05aba5f437d2
treecd2c592b0eb4a69108029bfe64f79f657c4ef835
parenta1eb03f546d651a8f39c7d0692b1f7f5b4e7e3cd
vhost/net: length miscalculation

commit 8b38694a2dc8b18374310df50174f1e4376d6824
    vhost/net: virtio 1.0 byte swap
had this chunk:
-       heads[headcount - 1].len += datalen;
+       heads[headcount - 1].len = cpu_to_vhost32(vq, len - datalen);

This adds datalen with the wrong sign, causing guest panics.

Fixes: 8b38694a2dc8b18374310df50174f1e4376d6824
Reported-by: Alex Williamson <alex.williamson@redhat.com>
Suggested-by: Greg Kurz <gkurz@linux.vnet.ibm.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
drivers/vhost/net.c