Staging: rtl8192e: off by one in rtl8192_get_channel_map()
Subsystems (2)
PATCH 1/1 Staging: rtl8192e: off by one in rtl8192_get_channel_map()
COUNTRY_CODE_MAX is not a valid country code. We're off by one here. This gets passed to Dot11d_Channelmap() where it's used as an offset into the ChannelPlan[] array.
Signed-off-by Dan Carpenter <[email protected]>
drivers/staging/rtl8192e/rtl_core.c +1 -1
@@ -1308,7 +1308,7 @@ static short rtl8192_get_channel_map(struct net_device *dev)return -1 ; } -if (priv->ChannelPlan >COUNTRY_CODE_MAX ) { +if (priv->ChannelPlan >=COUNTRY_CODE_MAX ) {printk (KERN_INFO "rtl819x_init:Error channel plan! Set to " "default.\n" ); priv->ChannelPlan =COUNTRY_CODE_FCC ;
Quoted 5 lines · Dan Carpenter
COUNTRY_CODE_MAXis not a valid country code. We're off by one here. This gets passed toDot11d_Channelmap()where it's used as an offset into the ChannelPlan[] array.Signed-off-by Dan Carpenter<[email protected]>
Signed-off-by Larry Finger <[email protected]>
Dan, good catch. Did this cause a problem, or did you find it while reading the code?
Larry
Quoted 15 lines
drivers/staging/rtl8192e/rtl_core.c +1
-1@@ -1308,7 +1308,7 @@ static short rtl8192_get_channel_map(struct net_device *dev)return -1 ; } -if (priv->ChannelPlan>COUNTRY_CODE_MAX ) { +if (priv->ChannelPlan>=COUNTRY_CODE_MAX ) {printk (KERN_INFO "rtl819x_init:Error channel plan! Set to " "default.\n" ); priv->ChannelPlan =COUNTRY_CODE_FCC ;
Quoted 2 lines · Dan Carpenter
It was a Smatch thing. I caught it when I updated my smatch_data/.
I guess I also need to update smatch.
Larry