From 1573b07284caf92cad5479b539213c508d5583a6 Mon Sep 17 00:00:00 2001 From: Michael Baum Date: Sun, 10 Apr 2022 12:25:27 +0300 Subject: [PATCH] net/mlx5: restrict Rx queue array access to boundary The mlx5_rxq_get() function gets RxQ index and return RxQ priv accordingly. When it gets an invalid index, it accesses out of array bounds which might cause undefined behavior. This patch adds a check for invalid indexes before accessing to array. Fixes: 0cedf34da78f ("net/mlx5: move Rx queue reference count") Cc: stable@dpdk.org Signed-off-by: Michael Baum Acked-by: Matan Azrad --- drivers/net/mlx5/mlx5_rxq.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c index 925544ae3d..38fde939e1 100644 --- a/drivers/net/mlx5/mlx5_rxq.c +++ b/drivers/net/mlx5/mlx5_rxq.c @@ -2049,6 +2049,8 @@ mlx5_rxq_get(struct rte_eth_dev *dev, uint16_t idx) { struct mlx5_priv *priv = dev->data->dev_private; + if (idx >= priv->rxqs_n) + return NULL; MLX5_ASSERT(priv->rxq_privs != NULL); return (*priv->rxq_privs)[idx]; } -- 2.39.5