ntb: ntb_hw_switchtec: Fix array-index-out-of-bounds access
authorMaciej Grochowski <Maciej.Grochowski@sony.com>
Thu, 13 Feb 2025 22:53:18 +0000 (14:53 -0800)
committerJon Mason <jdmason@kudzu.us>
Fri, 20 Feb 2026 22:31:55 +0000 (17:31 -0500)
Number of MW LUTs depends on NTB configuration and can be set to MAX_MWS,
This patch protects against invalid index out of bounds access to mw_sizes
When invalid access print message to user that configuration is not valid.

Signed-off-by: Maciej Grochowski <Maciej.Grochowski@sony.com>
Signed-off-by: Jon Mason <jdmason@kudzu.us>
drivers/ntb/hw/mscc/ntb_hw_switchtec.c

index 75809a5..0536521 100644 (file)
@@ -1316,6 +1316,12 @@ static void switchtec_ntb_init_shared(struct switchtec_ntb *sndev)
        for (i = 0; i < sndev->nr_lut_mw; i++) {
                int idx = sndev->nr_direct_mw + i;
 
+               if (idx >= MAX_MWS) {
+                       dev_err(&sndev->stdev->dev,
+                               "Total number of MW cannot be bigger than %d", MAX_MWS);
+                       break;
+               }
+
                sndev->self_shared->mw_sizes[idx] = LUT_SIZE;
        }
 }