wireless: restrict to 32 legacy rates
Since the standards only define 12 legacy rates, 32 is certainly a sane upper limit and we don't need to use u64 everywhere. Add sanity checking that no more than 32 rates are registered and change the variables to u32 throughout. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:

committed by
John W. Linville

parent
369391db1a
commit
881d948c23
@@ -273,10 +273,16 @@ int wiphy_register(struct wiphy *wiphy)
|
||||
|
||||
sband->band = band;
|
||||
|
||||
if (!sband->n_channels || !sband->n_bitrates) {
|
||||
WARN_ON(1);
|
||||
if (WARN_ON(!sband->n_channels || !sband->n_bitrates))
|
||||
return -EINVAL;
|
||||
|
||||
/*
|
||||
* Since we use a u32 for rate bitmaps in
|
||||
* ieee80211_get_response_rate, we cannot
|
||||
* have more than 32 legacy rates.
|
||||
*/
|
||||
if (WARN_ON(sband->n_bitrates > 32))
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
for (i = 0; i < sband->n_channels; i++) {
|
||||
sband->channels[i].orig_flags =
|
||||
|
Reference in New Issue
Block a user