From c4a48f2c397e6ec219ed64be65a1cc23847f595a Mon Sep 17 00:00:00 2001 From: Steven Luong Date: Wed, 19 Jan 2022 09:08:27 -0800 Subject: virtio: coverity woes -- divide by zero Coverity complains the expression, j % vif->num_txq, may encounter divide by zero. While there is little chance that vif->num_txq is zero, it is easy to prevent divide by zero if vif->num_txq is ever zero. Type: fix Fixes: I337ec63d0868f665329d68eadf1744e080b73a0d Signed-off-by: Steven Luong Change-Id: I2e91f296737ce266ab70fffc1f442cc600724fa2 --- src/vnet/devices/virtio/virtio.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src/vnet/devices/virtio') diff --git a/src/vnet/devices/virtio/virtio.c b/src/vnet/devices/virtio/virtio.c index 2d1edfecb67..bbca81c2d02 100644 --- a/src/vnet/devices/virtio/virtio.c +++ b/src/vnet/devices/virtio/virtio.c @@ -295,6 +295,13 @@ virtio_vring_set_tx_queues (vlib_main_t *vm, virtio_if_t *vif) vnm, vif->hw_if_index, TX_QUEUE_ACCESS (vring->queue_id)); } + if (vif->num_txqs == 0) + { + virtio_log_error (vif, "Interface %U has 0 txq", + format_vnet_hw_if_index_name, vnm, vif->hw_if_index); + return; + } + for (u32 j = 0; j < vlib_get_n_threads (); j++) { u32 qi = vif->txq_vrings[j % vif->num_txqs].queue_index; -- cgit 1.2.3-korg