提交 20ad4fd5 编写于 作者: S Scott Ashcroft 提交者: John W. Linville

rndis_wlan: use ARRAY_SIZE instead of sizeof when adding 11g rates

While figuring out the TKIP problem I found a bug in the code which adds the 11g
rates. It's using sizeof instead of ARRAY_SIZE to terminate the for loop. This makes
it fall off the end of the rates array start into the frequency array instead. Running
"iwlist rate" should show the problem as there will always be 32 rates with the last
few being bogus.

The following patch will fix it.
Signed-off-by: NScott Ashcroft <scott.ashcroft@talk21.com>
Signed-off-by: NJussi Kivilinna <jussi.kivilinna@mbnet.fi>
Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
上级 a888d52d
...@@ -1108,7 +1108,7 @@ static int rndis_iw_get_range(struct net_device *dev, ...@@ -1108,7 +1108,7 @@ static int rndis_iw_get_range(struct net_device *dev,
/* fill in 802.11g rates */ /* fill in 802.11g rates */
if (has_80211g_rates) { if (has_80211g_rates) {
num = range->num_bitrates; num = range->num_bitrates;
for (i = 0; i < sizeof(rates_80211g); i++) { for (i = 0; i < ARRAY_SIZE(rates_80211g); i++) {
for (j = 0; j < num; j++) { for (j = 0; j < num; j++) {
if (range->bitrate[j] == if (range->bitrate[j] ==
rates_80211g[i] * 1000000) rates_80211g[i] * 1000000)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册