Re: [PATCH] rtlwifi: rtl8192de: Restore channel index initialization

From: Kees Cook
Date: Wed Aug 25 2021 - 22:36:08 EST


On Thu, Aug 26, 2021 at 12:45:53AM +0000, Pkshih wrote:
>
>
> > -----Original Message-----
> > From: Kees Cook [mailto:keescook@xxxxxxxxxxxx]
> > Sent: Thursday, August 26, 2021 2:31 AM
> > To: Pkshih
> > Cc: Kees Cook; Kalle Valo; David S. Miller; Jakub Kicinski; Larry Finger; Colin Ian King; Kaixu Xia;
> > Joe Perches; linux-wireless@xxxxxxxxxxxxxxx; netdev@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx;
> > linux-hardening@xxxxxxxxxxxxxxx
> > Subject: [PATCH] rtlwifi: rtl8192de: Restore channel index initialization
> >
> > 2G channel indexes still need "place" to be initialized, since it is
> > returned from this function when channel is less than 14.
> >
> > Fixes: 369956ae5720 ("rtlwifi: rtl8192de: Remove redundant variable initializations")
>
> Like the patch "rtlwifi: rtl8192de: Fix initialization of place in _rtl92c_phy_get_rightchnlplace()"
> you sent before, please help to correct the removal of the commit 369956ae5720.
> I think we can add following into this patch.
>
> --- a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/phy.c
> +++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/phy.c
> @@ -1363,7 +1363,7 @@ static void _rtl92d_phy_switch_rf_setting(struct ieee80211_hw *hw, u8 channel)
>
> u8 rtl92d_get_rightchnlplace_for_iqk(u8 chnl)
> {
> - u8 place = chnl;
> + u8 place;
>
> if (chnl > 14) {
> for (place = 14; place < sizeof(channel_all); place++) {

Oh, er, it looks like Nathan found this before me, yes. I think
https://lore.kernel.org/linux-wireless/20210823222014.764557-1-nathan@xxxxxxxxxx/
is the complete patch.

-Kees

>
> > Cc: Ping-Ke Shih <pkshih@xxxxxxxxxxx>
> > Cc: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
> > Cc: "David S. Miller" <davem@xxxxxxxxxxxxx>
> > Cc: Jakub Kicinski <kuba@xxxxxxxxxx>
> > Cc: Larry Finger <Larry.Finger@xxxxxxxxxxxx>
> > Cc: Colin Ian King <colin.king@xxxxxxxxxxxxx>
> > Cc: Kaixu Xia <kaixuxia@xxxxxxxxxxx>
> > Cc: Joe Perches <joe@xxxxxxxxxxx>
> > Cc: linux-wireless@xxxxxxxxxxxxxxx
> > Cc: netdev@xxxxxxxxxxxxxxx
> > Signed-off-by: Kees Cook <keescook@xxxxxxxxxxxx>
> > ---
> > drivers/net/wireless/realtek/rtlwifi/rtl8192de/phy.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/phy.c
> > b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/phy.c
> > index 8ae69d914312..b32fa7a75f17 100644
> > --- a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/phy.c
> > +++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/phy.c
> > @@ -896,7 +896,7 @@ static void _rtl92d_ccxpower_index_check(struct ieee80211_hw *hw,
> >
> > static u8 _rtl92c_phy_get_rightchnlplace(u8 chnl)
> > {
> > - u8 place;
> > + u8 place = chnl;
> >
> > if (chnl > 14) {
> > for (place = 14; place < sizeof(channel5g); place++) {
>
> --
> Ping-Ke
>

--
Kees Cook