This error is caused by a buggy guest: let's switch the device to the broken state instead of terminating QEMU.
Signed-off-by: Greg Kurz <gr...@kaod.org> --- hw/net/virtio-net.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c index 01f1351554aa..68a448acd81b 100644 --- a/hw/net/virtio-net.c +++ b/hw/net/virtio-net.c @@ -892,8 +892,8 @@ static void virtio_net_handle_ctrl(VirtIODevice *vdev, VirtQueue *vq) } if (iov_size(elem->in_sg, elem->in_num) < sizeof(status) || iov_size(elem->out_sg, elem->out_num) < sizeof(ctrl)) { - error_report("virtio-net ctrl missing headers"); - exit(1); + virtio_error(vdev, "virtio-net ctrl missing headers"); + return; } iov_cnt = elem->out_num;