mac80211: fix VHT MCS mask array overrun
The HT MCS mask has 9 bytes, the VHT one only has 8 streams. Split the loops to handle this correctly. Reported-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
Родитель
ef9be10c8c
Коммит
2df1b131b5
|
@ -2518,15 +2518,17 @@ static int ieee80211_set_bitrate_mask(struct wiphy *wiphy,
|
|||
continue;
|
||||
|
||||
for (j = 0; j < IEEE80211_HT_MCS_MASK_LEN; j++) {
|
||||
if (~sdata->rc_rateidx_mcs_mask[i][j])
|
||||
if (~sdata->rc_rateidx_mcs_mask[i][j]) {
|
||||
sdata->rc_has_mcs_mask[i] = true;
|
||||
|
||||
if (~sdata->rc_rateidx_vht_mcs_mask[i][j])
|
||||
sdata->rc_has_vht_mcs_mask[i] = true;
|
||||
|
||||
if (sdata->rc_has_mcs_mask[i] &&
|
||||
sdata->rc_has_vht_mcs_mask[i])
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
for (j = 0; j < NL80211_VHT_NSS_MAX; j++) {
|
||||
if (~sdata->rc_rateidx_vht_mcs_mask[i][j]) {
|
||||
sdata->rc_has_vht_mcs_mask[i] = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче