OSDN Git Service

virtio: fix up max size checks
authorMichael S. Tsirkin <mst@redhat.com>
Wed, 18 Jan 2017 19:32:22 +0000 (21:32 +0200)
committerMichael S. Tsirkin <mst@redhat.com>
Thu, 19 Jan 2017 21:00:31 +0000 (23:00 +0200)
commit6bdc21c050a2a7b92cbbd0b2a1f8934e9b5f896f
treeebcac17c0918349166324f39fb342222f06ebdb0
parent9568700563151a5ce68fd7e61a38b72fbba7273d
virtio: fix up max size checks

Coverity reports that ARRAY_SIZE(elem->out_sg) (and all the others too)
is wrong because elem->out_sg is a pointer.

However, the check is not in the right place and the max_size argument
of virtqueue_map_iovec can be removed.  The check on in_num/out_num
should be moved to qemu_get_virtqueue_element instead, before the call
to virtqueue_alloc_element.

Cc: qemu-stable@nongnu.org
Reported-by: Paolo Bonzini <pbonzini@redhat.com>
Fixes: 3724650db07057333879484c8bc7d900b5c1bf8e ("virtio: introduce virtqueue_alloc_element")
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com>
hw/virtio/virtio.c