ipw2x00: Write outside array bounds
PATCH 1/1 ipw2x00: Write outside array bounds
channel_index loops up to IPW_SCAN_CHANNELS, but is used after being incremented. This might be able to access 1 past the end of the array
---
drivers/net/wireless/ipw2x00/ipw2200.c +4 -1
@@ -6249,7 +6249,10 @@ static void ipw_add_scan_channels(struct ipw_priv *priv, channels[channel -1 ] =1 ; priv->speed_scan_pos++; - channel_index++; + +if (++channel_index >=IPW_SCAN_CHANNELS ) +break ; + scan->channels_list[channel_index] = channel; index =ieee80211_channel_to_index (priv->ieee, channel);
Quoted 4 lines · Roel Kluin
channel_indexloops up toIPW_SCAN_CHANNELS, but is used after being incremented. This might be able to access 1 past the end of the arraySigned-off-by Roel Kluin <[email protected]>
Thanks. Do you think below patch is better?
Thanks,
-yi
drivers/net/wireless/ipw2x00/ipw2200.c +1 -1
@@ -6226,7 +6226,7 @@ static void ipw_add_scan_channels(struct ipw_priv *priv, };u8 channel; -while (channel_index <IPW_SCAN_CHANNELS ) { +while (channel_index <IPW_SCAN_CHANNELS -1 ) { channel = priv->speed_scan[priv->speed_scan_pos];if (channel ==0 ) {
Quoted 17 lines
---
drivers/net/wireless/ipw2x00/ipw2200.c +4
-1@@ -6249,7 +6249,10 @@ static void ipw_add_scan_channels(struct ipw_priv *priv, channels[channel -1 ] =1 ; priv->speed_scan_pos++; - channel_index++; + +if (++channel_index >=IPW_SCAN_CHANNELS ) +break ; + scan->channels_list[channel_index] = channel; index =ieee80211_channel_to_index (priv->ieee, channel);
Quoted 7 lines · Zhu Yi
Quoted 4 lines · Roel Kluin
channel_indexloops up toIPW_SCAN_CHANNELS, but is used after being incremented. This might be able to access 1 past the end of the arraySigned-off-by Roel Kluin <[email protected]>Thanks. Do you think below patch is better?
Didn't see an answer here...which patch do we want?
John
Signature · 3 lines
John W. Linville Someday the world will need a hero, and you [email protected] might be all we have. Be ready. ¡Viva Honduras Libre!
Quoted 10 lines · John W. Linville
Quoted 7 lines · Zhu Yi
Quoted 4 lines · Roel Kluin
channel_indexloops up toIPW_SCAN_CHANNELS, but is used after being incremented. This might be able to access 1 past the end of the arraySigned-off-by Roel Kluin <[email protected]>Thanks. Do you think below patch is better?
Didn't see an answer here...which patch do we want?
Please apply mine.
Thanks,
-yi