From 952b24bd0475450e548d4aafae7d8cf48258402b Mon Sep 17 00:00:00 2001 From: Bruce Richardson Date: Thu, 14 Nov 2024 11:55:38 +0000 Subject: [PATCH] eventdev: fix possible array underflow/overflow If the number of interrupts is zero, then indexing an array by "nb_rx_intr - 1" will cause an out-of-bounds write Fix this by putting in a check that nb_rx_intr > 0 before doing the array write. Coverity issue: 448870 Fixes: 3810ae435783 ("eventdev: add interrupt driven queues to Rx adapter") Cc: stable@dpdk.org Signed-off-by: Bruce Richardson Acked-by: Jerin Jacob --- lib/eventdev/rte_event_eth_rx_adapter.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/eventdev/rte_event_eth_rx_adapter.c b/lib/eventdev/rte_event_eth_rx_adapter.c index 3ee20d95f37..39674c4604d 100644 --- a/lib/eventdev/rte_event_eth_rx_adapter.c +++ b/lib/eventdev/rte_event_eth_rx_adapter.c @@ -2299,7 +2299,7 @@ rxa_sw_add(struct event_eth_rx_adapter *rx_adapter, uint16_t eth_dev_id, for (i = 0; i < dev_info->dev->data->nb_rx_queues; i++) dev_info->intr_queue[i] = i; } else { - if (!rxa_intr_queue(dev_info, rx_queue_id)) + if (!rxa_intr_queue(dev_info, rx_queue_id) && nb_rx_intr > 0) dev_info->intr_queue[nb_rx_intr - 1] = rx_queue_id; }