summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Richardson <[email protected]>2024-11-14 11:55:38 +0000
committerJerin Jacob <[email protected]>2024-11-18 15:30:13 +0530
commitfa9d8629f800e85054b5c69678c3aeced4866e0f (patch)
treef3d9b529ecfa64cadc2798a944c530ce48da1a60
parent1b77005170b54612560f2e6f99588761a168de38 (diff)
eventdev: fix possible array underflow/overflownext-eventdev-for-main
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: [email protected] Signed-off-by: Bruce Richardson <[email protected]> Series-Acked-by: Jerin Jacob <[email protected]>
-rw-r--r--lib/eventdev/rte_event_eth_rx_adapter.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/eventdev/rte_event_eth_rx_adapter.c b/lib/eventdev/rte_event_eth_rx_adapter.c
index 3ee20d95f3..39674c4604 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;
}