diff mbox series

[RESEND] wifi: cfg80211: Do not create BSS entries for unsupported channels

Message ID 20240923021644.12885-1-quic_chenhuan@quicinc.com (mailing list archive)
State Accepted
Delegated to: Johannes Berg
Headers show
Series [RESEND] wifi: cfg80211: Do not create BSS entries for unsupported channels | expand

Commit Message

Chenming Huang Sept. 23, 2024, 2:16 a.m. UTC
Currently, in cfg80211_parse_ml_elem_sta_data(), when RNR element
indicates a BSS that operates in a channel that current regulatory
domain doesn't support, a NULL value is returned by
ieee80211_get_channel_khz() and assigned to this BSS entry's channel
field. Later in cfg80211_inform_single_bss_data(), the reported
BSS entry's channel will be wrongly overridden by transmitted BSS's.
This could result in connection failure that when wpa_supplicant
tries to select this reported BSS entry while it actually resides in
an unsupported channel.

Since this channel is not supported, it is reasonable to skip such
entries instead of reporting wrong information.

Signed-off-by: Chenming Huang <quic_chenhuan@quicinc.com>
---
 net/wireless/scan.c | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Kalle Valo Sept. 23, 2024, 7:29 a.m. UTC | #1
Chenming Huang <quic_chenhuan@quicinc.com> writes:

> Currently, in cfg80211_parse_ml_elem_sta_data(), when RNR element
> indicates a BSS that operates in a channel that current regulatory
> domain doesn't support, a NULL value is returned by
> ieee80211_get_channel_khz() and assigned to this BSS entry's channel
> field. Later in cfg80211_inform_single_bss_data(), the reported
> BSS entry's channel will be wrongly overridden by transmitted BSS's.
> This could result in connection failure that when wpa_supplicant
> tries to select this reported BSS entry while it actually resides in
> an unsupported channel.
>
> Since this channel is not supported, it is reasonable to skip such
> entries instead of reporting wrong information.
>
> Signed-off-by: Chenming Huang <quic_chenhuan@quicinc.com>

The list of changes from v1 missing. I guess you added the 'wifi:' prefix
but did you change something else?
Chenming Huang Sept. 23, 2024, 7:34 a.m. UTC | #2
On 9/23/2024 3:29 PM, Kalle Valo wrote:
> Chenming Huang <quic_chenhuan@quicinc.com> writes:
> 
>> Currently, in cfg80211_parse_ml_elem_sta_data(), when RNR element
>> indicates a BSS that operates in a channel that current regulatory
>> domain doesn't support, a NULL value is returned by
>> ieee80211_get_channel_khz() and assigned to this BSS entry's channel
>> field. Later in cfg80211_inform_single_bss_data(), the reported
>> BSS entry's channel will be wrongly overridden by transmitted BSS's.
>> This could result in connection failure that when wpa_supplicant
>> tries to select this reported BSS entry while it actually resides in
>> an unsupported channel.
>>
>> Since this channel is not supported, it is reasonable to skip such
>> entries instead of reporting wrong information.
>>
>> Signed-off-by: Chenming Huang <quic_chenhuan@quicinc.com>
> 
> The list of changes from v1 missing. I guess you added the 'wifi:' prefix
> but did you change something else?
> 

Hi Kalle, only added the 'wifi:' prefix. No other change.
diff mbox series

Patch

diff --git a/net/wireless/scan.c b/net/wireless/scan.c
index 59a90bf3c0d6..d0aed41ded2f 100644
--- a/net/wireless/scan.c
+++ b/net/wireless/scan.c
@@ -3050,6 +3050,10 @@  cfg80211_parse_ml_elem_sta_data(struct wiphy *wiphy,
 		freq = ieee80211_channel_to_freq_khz(ap_info->channel, band);
 		data.channel = ieee80211_get_channel_khz(wiphy, freq);
 
+		/* Skip if RNR element specifies an unsupported channel */
+		if (!data.channel)
+			continue;
+
 		/* Skip if BSS entry generated from MBSSID or DIRECT source
 		 * frame data available already.
 		 */