diff mbox series

[2/3,2/3] ntb: ntb_hw_switchtec: Fix array-index-out-of-bounds access

Message ID 20250213225319.1965-3-Maciej.Grochowski@sony.com (mailing list archive)
State New
Delegated to: Bjorn Helgaas
Headers show
Series ntb_hw_switchtec enable 256 LUTs | expand

Commit Message

Maciej Grochowski Feb. 13, 2025, 10:53 p.m. UTC
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>
---
 drivers/ntb/hw/mscc/ntb_hw_switchtec.c | 5 +++++
 1 file changed, 5 insertions(+)
diff mbox series

Patch

diff --git a/drivers/ntb/hw/mscc/ntb_hw_switchtec.c b/drivers/ntb/hw/mscc/ntb_hw_switchtec.c
index 6ab094b0850a..51a3766b3f67 100644
--- a/drivers/ntb/hw/mscc/ntb_hw_switchtec.c
+++ b/drivers/ntb/hw/mscc/ntb_hw_switchtec.c
@@ -1316,6 +1316,11 @@  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;
 	}
 }