diff options
author | Larry Finger <Larry.Finger@lwfinger.net> | 2014-10-21 17:52:51 +0200 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2014-10-23 20:02:06 +0200 |
commit | d514aefb8ce89562ef2d7dcddc530e5de6287c4b (patch) | |
tree | b2b11dec9f034a69ed4451d624a81bb240daf8cf /drivers/net/wireless/rtlwifi/rtl8821ae | |
parent | ath9k: Enable HW queue control only for MCC (diff) | |
download | linux-d514aefb8ce89562ef2d7dcddc530e5de6287c4b.tar.xz linux-d514aefb8ce89562ef2d7dcddc530e5de6287c4b.zip |
rtlwifi: rtl8821ae: Fix possible array overrun
The kbuild test robot reported a possible array overrun. The affected code
checks for overruns, but fails to take the steps necessary to fix them.
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/rtlwifi/rtl8821ae')
-rw-r--r-- | drivers/net/wireless/rtlwifi/rtl8821ae/phy.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/drivers/net/wireless/rtlwifi/rtl8821ae/phy.c b/drivers/net/wireless/rtlwifi/rtl8821ae/phy.c index 9786313dc62f..1e9570fa874f 100644 --- a/drivers/net/wireless/rtlwifi/rtl8821ae/phy.c +++ b/drivers/net/wireless/rtlwifi/rtl8821ae/phy.c @@ -1889,15 +1889,18 @@ static void _rtl8821ae_store_tx_power_by_rate(struct ieee80211_hw *hw, struct rtl_phy *rtlphy = &rtlpriv->phy; u8 rate_section = _rtl8821ae_get_rate_section_index(regaddr); - if (band != BAND_ON_2_4G && band != BAND_ON_5G) + if (band != BAND_ON_2_4G && band != BAND_ON_5G) { RT_TRACE(rtlpriv, COMP_INIT, DBG_WARNING, "Invalid Band %d\n", band); - - if (rfpath >= MAX_RF_PATH) + band = BAND_ON_2_4G; + } + if (rfpath >= MAX_RF_PATH) { RT_TRACE(rtlpriv, COMP_INIT, DBG_WARNING, "Invalid RfPath %d\n", rfpath); - - if (txnum >= MAX_RF_PATH) + rfpath = MAX_RF_PATH - 1; + } + if (txnum >= MAX_RF_PATH) { RT_TRACE(rtlpriv, COMP_INIT, DBG_WARNING, "Invalid TxNum %d\n", txnum); - + txnum = MAX_RF_PATH - 1; + } rtlphy->tx_power_by_rate_offset[band][rfpath][txnum][rate_section] = data; RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "TxPwrByRateOffset[Band %d][RfPath %d][TxNum %d][RateSection %d] = 0x%x\n", |