| From ef15ddeeb6bee87c044bf7754fac524545bf71e8 Mon Sep 17 00:00:00 2001 |
| From: Aleksandr Mishin <amishin@t-argos.ru> |
| Date: Thu, 28 Mar 2024 19:55:05 +0300 |
| Subject: octeontx2-af: Add array index check |
| |
| From: Aleksandr Mishin <amishin@t-argos.ru> |
| |
| commit ef15ddeeb6bee87c044bf7754fac524545bf71e8 upstream. |
| |
| In rvu_map_cgx_lmac_pf() the 'iter', which is used as an array index, can reach |
| value (up to 14) that exceed the size (MAX_LMAC_COUNT = 8) of the array. |
| Fix this bug by adding 'iter' value check. |
| |
| Found by Linux Verification Center (linuxtesting.org) with SVACE. |
| |
| Fixes: 91c6945ea1f9 ("octeontx2-af: cn10k: Add RPM MAC support") |
| Signed-off-by: Aleksandr Mishin <amishin@t-argos.ru> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c | 2 ++ |
| 1 file changed, 2 insertions(+) |
| |
| --- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c |
| +++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c |
| @@ -160,6 +160,8 @@ static int rvu_map_cgx_lmac_pf(struct rv |
| continue; |
| lmac_bmap = cgx_get_lmac_bmap(rvu_cgx_pdata(cgx, rvu)); |
| for_each_set_bit(iter, &lmac_bmap, rvu->hw->lmac_per_cgx) { |
| + if (iter >= MAX_LMAC_COUNT) |
| + continue; |
| lmac = cgx_get_lmacid(rvu_cgx_pdata(cgx, rvu), |
| iter); |
| rvu->pf2cgxlmac_map[pf] = cgxlmac_id_to_bmap(cgx, lmac); |