Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 185076d6 authored by Arik Nemtsov's avatar Arik Nemtsov Committed by Johannes Berg
Browse files

cfg80211: correctly check ad-hoc channels



Ad-hoc requires beaconing for regulatory purposes. Validate that the
channel is valid for beaconing, and not only enabled.

Signed-off-by: default avatarArik Nemtsov <arikx.nemtsov@intel.com>
Reviewed-by: default avatarLuis R. Rodriguez <mcgrof@suse.com>
Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent 70dcec5a
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -1546,12 +1546,18 @@ static bool reg_wdev_chan_valid(struct wiphy *wiphy, struct wireless_dev *wdev)
		if (!wdev->beacon_interval)
			goto out;

		ret = cfg80211_reg_can_beacon(wiphy,
					      &wdev->chandef, wdev->iftype);
		break;
	case NL80211_IFTYPE_ADHOC:
		if (!wdev->ssid_len)
			goto out;

		ret = cfg80211_reg_can_beacon(wiphy,
					      &wdev->chandef, wdev->iftype);
		break;
	case NL80211_IFTYPE_STATION:
	case NL80211_IFTYPE_P2P_CLIENT:
	case NL80211_IFTYPE_ADHOC:
		if (!wdev->current_bss ||
		    !wdev->current_bss->pub.channel)
			goto out;