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

Reply via email to