mirror of
https://github.com/vanhoefm/fragattacks.git
synced 2024-11-25 00:38:24 -05:00
nl80211: Don't force VHT channel definition with HE
HE (802.11ax) is also supported on 2.4 GHz. And the 2.4 GHz band isn't
supposed to use VHT operations. Some codepaths in wpa_supplicant will
therefore not initialize the freq->bandwidth or the freq->center_freq1/2
members. As a result, the nl80211_put_freq_params() will directly return
an error (-1) or the kernel will return an error due to the invalid
channel definition.
Instead, the channel definitions should be created based on the actual
HT/VHT/none information on 2.4 GHz.
Fixes: ad9a1bfe78
("nl80211: Share VHT channel configuration for HE")
Signed-off-by: Sven Eckelmann <seckelmann@datto.com>
This commit is contained in:
parent
dd0153fced
commit
df4f959988
@ -4344,6 +4344,10 @@ fail:
|
||||
static int nl80211_put_freq_params(struct nl_msg *msg,
|
||||
const struct hostapd_freq_params *freq)
|
||||
{
|
||||
enum hostapd_hw_mode hw_mode;
|
||||
int is_24ghz;
|
||||
u8 channel;
|
||||
|
||||
wpa_printf(MSG_DEBUG, " * freq=%d", freq->freq);
|
||||
if (nla_put_u32(msg, NL80211_ATTR_WIPHY_FREQ, freq->freq))
|
||||
return -ENOBUFS;
|
||||
@ -4352,7 +4356,11 @@ static int nl80211_put_freq_params(struct nl_msg *msg,
|
||||
wpa_printf(MSG_DEBUG, " * vht_enabled=%d", freq->vht_enabled);
|
||||
wpa_printf(MSG_DEBUG, " * ht_enabled=%d", freq->ht_enabled);
|
||||
|
||||
if (freq->vht_enabled || freq->he_enabled) {
|
||||
hw_mode = ieee80211_freq_to_chan(freq->freq, &channel);
|
||||
is_24ghz = hw_mode == HOSTAPD_MODE_IEEE80211G ||
|
||||
hw_mode == HOSTAPD_MODE_IEEE80211B;
|
||||
|
||||
if (freq->vht_enabled || (freq->he_enabled && !is_24ghz)) {
|
||||
enum nl80211_chan_width cw;
|
||||
|
||||
wpa_printf(MSG_DEBUG, " * bandwidth=%d", freq->bandwidth);
|
||||
|
Loading…
Reference in New Issue
Block a user