Index of the BST keys was wrongly initialized to a larger value, a
possible buffer overflow.

Reported-by: Dan Carpenter <[email protected]>
Closes: 
https://lore.kernel.org/intel-wired-lan/[email protected]/
Reviewed-by: Przemek Kitszel <[email protected]>
Fixes: 9a4c07aaa0f5 ("ice: add parser execution main loop")
Signed-off-by: Ahmed Zaki <[email protected]>
---
 drivers/net/ethernet/intel/ice/ice_parser_rt.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/intel/ice/ice_parser_rt.c 
b/drivers/net/ethernet/intel/ice/ice_parser_rt.c
index d5bcc266b01e..c24e651ccf9d 100644
--- a/drivers/net/ethernet/intel/ice/ice_parser_rt.c
+++ b/drivers/net/ethernet/intel/ice/ice_parser_rt.c
@@ -119,13 +119,13 @@ static void ice_bst_key_init(struct ice_parser_rt *rt,
        u8 *key = rt->bst_key;
        int idd, i;
 
-       idd = ICE_BST_TCAM_KEY_SIZE - 1;
+       idd = ICE_BST_KEY_SIZE - 1;
        if (imem->b_kb.tsr_ctrl)
                key[idd] = tsr;
        else
                key[idd] = imem->b_kb.prio;
 
-       idd = ICE_BST_KEY_TCAM_SIZE - 1;
+       idd = ICE_BST_KEY_SIZE - 1;
        for (i = idd; i >= 0; i--) {
                int j;
 
-- 
2.43.0

Reply via email to