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:
		| @@ -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; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Felix Fietkau
					Felix Fietkau