net80211: fix out-of-bounds read in ieee80211_amrr(9).

ieee80211_alloc_node() does not initialize rateset tables; that's not
expected by rate control modules and will result in array access at
index -1 - where ni_essid[] array is located (zeroed at allocation, so
there are no user-visible consequences).

Just delay rate control initialization to the moment, when rateset
tables are initiaziled; nothing will use rates here anyway.

MFC after:	4 days
This commit is contained in:
Andriy Voskoboinyk 2018-12-19 03:08:10 +00:00
parent b156a400a6
commit 627bd78e3e

View File

@ -1417,8 +1417,6 @@ ieee80211_alloc_node(struct ieee80211_node_table *nt,
IEEE80211_NOTE(vap, IEEE80211_MSG_INACT, ni, IEEE80211_NOTE(vap, IEEE80211_MSG_INACT, ni,
"%s: inact_reload %u", __func__, ni->ni_inact_reload); "%s: inact_reload %u", __func__, ni->ni_inact_reload);
ieee80211_ratectl_node_init(ni);
return ni; return ni;
} }