vmd(8): guard against bad virtio drivers
authordv <dv@openbsd.org>
Thu, 22 Apr 2021 18:40:21 +0000 (18:40 +0000)
committerdv <dv@openbsd.org>
Thu, 22 Apr 2021 18:40:21 +0000 (18:40 +0000)
commit3688c158de84bfd1b433891c75e9b5d6034c892d
tree1680e26203ca52839df65046c51e8b01e4629d5e
parentd7f9cac0f7a624d75948ed247cc21fdc22dc8a19
vmd(8): guard against bad virtio drivers

Add protections against guests with bad virtio-{blk,net,scsi}
drivers, specifically avoiding invalid descriptor chains and
invalid vionet packet sizes. This helps prevent possible lockup
of the host vm process due to a spinning device event loop thread.

Also fix an unneeded cast in the vioblk handling in case of invalid
buffer lengths.

OK mlarkin@
usr.sbin/vmd/vioscsi.c
usr.sbin/vmd/virtio.c