From: Sokolov Evgeny <[email protected]>
ctx_dma_arr stores rte_iova_t entries, but the allocation size was
calculated using sizeof(rte_iova_t *) instead of sizeof(rte_iova_t).
Use the correct element size when allocating the array to match the
actual data type stored in ctx_dma_arr.
Fixes: 4371b402c7b ("net/bnxt: fix array overflow")
Cc: [email protected]
Signed-off-by: Sokolov Evgeny <[email protected]>
---
drivers/net/bnxt/bnxt_ethdev.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c
index a2429561b9..2754725566 100644
--- a/drivers/net/bnxt/bnxt_ethdev.c
+++ b/drivers/net/bnxt/bnxt_ethdev.c
@@ -5054,7 +5054,7 @@ static int bnxt_alloc_ctx_mem_blk(struct bnxt *bp,
snprintf(name, RTE_MEMZONE_NAMESIZE, "bnxt_ctx_dma_arr%s_%x_%d",
suffix, idx, bp->eth_dev->data->port_id);
- ctx_pg->ctx_dma_arr = rte_zmalloc(name, sizeof(rte_iova_t *) *
rmem->nr_pages, 0);
+ ctx_pg->ctx_dma_arr = rte_zmalloc(name, sizeof(rte_iova_t) *
rmem->nr_pages, 0);
if (ctx_pg->ctx_dma_arr == NULL)
return -ENOMEM;
--
2.30.2