mirror of
https://github.com/hanwckf/immortalwrt-mt798x.git
synced 2025-01-09 02:43:53 +08:00
mac80211: fix an uninitialized stack variable in the minstrel update
It can lead to out-of-bounds access and invalid rates Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
parent
f841855f10
commit
faeaf5a010
@ -76,7 +76,15 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
bool ht_supported = mi->sta->ht_cap.ht_supported;
|
bool ht_supported = mi->sta->ht_cap.ht_supported;
|
||||||
|
|
||||||
mi->sample_mode = MINSTREL_SAMPLE_IDLE;
|
mi->sample_mode = MINSTREL_SAMPLE_IDLE;
|
||||||
@@ -903,9 +913,6 @@ minstrel_ht_update_stats(struct minstrel
|
@@ -863,6 +873,7 @@ minstrel_ht_update_stats(struct minstrel
|
||||||
|
else
|
||||||
|
index = MINSTREL_OFDM_GROUP * MCS_GROUP_RATES;
|
||||||
|
|
||||||
|
+ tmp_max_prob_rate = index;
|
||||||
|
for (j = 0; j < ARRAY_SIZE(tmp_mcs_tp_rate); j++)
|
||||||
|
tmp_mcs_tp_rate[j] = index;
|
||||||
|
|
||||||
|
@@ -903,9 +914,6 @@ minstrel_ht_update_stats(struct minstrel
|
||||||
/* Find max throughput rate set within a group */
|
/* Find max throughput rate set within a group */
|
||||||
minstrel_ht_sort_best_tp_rates(mi, index,
|
minstrel_ht_sort_best_tp_rates(mi, index,
|
||||||
tmp_group_tp_rate);
|
tmp_group_tp_rate);
|
||||||
@ -86,7 +94,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
}
|
}
|
||||||
|
|
||||||
memcpy(mg->max_group_tp_rate, tmp_group_tp_rate,
|
memcpy(mg->max_group_tp_rate, tmp_group_tp_rate,
|
||||||
@@ -917,6 +924,27 @@ minstrel_ht_update_stats(struct minstrel
|
@@ -917,6 +925,27 @@ minstrel_ht_update_stats(struct minstrel
|
||||||
tmp_legacy_tp_rate);
|
tmp_legacy_tp_rate);
|
||||||
memcpy(mi->max_tp_rate, tmp_mcs_tp_rate, sizeof(mi->max_tp_rate));
|
memcpy(mi->max_tp_rate, tmp_mcs_tp_rate, sizeof(mi->max_tp_rate));
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
|
|
||||||
--- a/net/mac80211/rc80211_minstrel_ht.c
|
--- a/net/mac80211/rc80211_minstrel_ht.c
|
||||||
+++ b/net/mac80211/rc80211_minstrel_ht.c
|
+++ b/net/mac80211/rc80211_minstrel_ht.c
|
||||||
@@ -1864,7 +1864,7 @@ minstrel_ht_alloc(struct ieee80211_hw *h
|
@@ -1865,7 +1865,7 @@ minstrel_ht_alloc(struct ieee80211_hw *h
|
||||||
mp->has_mrr = true;
|
mp->has_mrr = true;
|
||||||
|
|
||||||
mp->hw = hw;
|
mp->hw = hw;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user