From: Zong-Zhe Yang <redacted>
Wi-Fi 7 chips have function to control SCO (Symbol Carrier Offset) for
CCK. The corresponding valid primary channels are from 1 to 14, i.e.
array index is from 0 to 13. So, fix the condition.
Resolve INTEGER_OVERFLOW (Overflowed array index read) reported by
Coverity.
Signed-off-by: Zong-Zhe Yang <redacted>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
---
drivers/net/wireless/realtek/rtw89/rtw8922a.c | 2 +-
drivers/net/wireless/realtek/rtw89/rtw8922d.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/wireless/realtek/rtw89/rtw8922a.c b/drivers/net/wireless/realtek/rtw89/rtw8922a.c
index 2d225e009b28..6402bd4f06aa 100644
--- a/drivers/net/wireless/realtek/rtw89/rtw8922a.c
+++ b/drivers/net/wireless/realtek/rtw89/rtw8922a.c
@@ -1152,7 +1152,7 @@ static int rtw8922a_ctrl_sco_cck(struct rtw89_dev *rtwdev,
{
u8 ch_element;
- if (primary_ch >= 14)
+ if (primary_ch > 14 || unlikely(primary_ch == 0))
return -EINVAL;
ch_element = primary_ch - 1;diff --git a/drivers/net/wireless/realtek/rtw89/rtw8922d.c b/drivers/net/wireless/realtek/rtw89/rtw8922d.c
index 75297b39c4d7..89c1f58d0dc0 100644
--- a/drivers/net/wireless/realtek/rtw89/rtw8922d.c
+++ b/drivers/net/wireless/realtek/rtw89/rtw8922d.c
@@ -1320,7 +1320,7 @@ static int rtw8922d_ctrl_sco_cck(struct rtw89_dev *rtwdev,
{
u8 ch_element;
- if (primary_ch >= 14)
+ if (primary_ch > 14 || unlikely(primary_ch == 0))
return -EINVAL;
ch_element = primary_ch - 1;--
2.25.1