summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2019-08-29 00:11:10 +0300
committerJohannes Berg <johannes.berg@intel.com>2019-09-11 11:45:10 +0300
commitc1d3ad84eae35414b6b334790048406bd6301b12 (patch)
tree3af40141142325c1403289f2623f85ea9b6e1596
parentb697746c62df8cfbaa04b94ae75de7098a08beb7 (diff)
downloadlinux-c1d3ad84eae35414b6b334790048406bd6301b12.tar.xz
cfg80211: Purge frame registrations on iftype change
Currently frame registrations are not purged, even when changing the interface type. This can lead to potentially weird situations where frames possibly not allowed on a given interface type remain registered due to the type switching happening after registration. The kernel currently relies on userspace apps to actually purge the registrations themselves, this is not something that the kernel should rely on. Add a call to cfg80211_mlme_purge_registrations() to forcefully remove any registrations left over prior to switching the iftype. Cc: stable@vger.kernel.org Signed-off-by: Denis Kenzior <denkenz@gmail.com> Link: https://lore.kernel.org/r/20190828211110.15005-1-denkenz@gmail.com Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-rw-r--r--net/wireless/util.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/net/wireless/util.c b/net/wireless/util.c
index 006f3eac00f7..633f6a331040 100644
--- a/net/wireless/util.c
+++ b/net/wireless/util.c
@@ -964,6 +964,7 @@ int cfg80211_change_iface(struct cfg80211_registered_device *rdev,
}
cfg80211_process_rdev_events(rdev);
+ cfg80211_mlme_purge_registrations(dev->ieee80211_ptr);
}
err = rdev_change_virtual_intf(rdev, dev, ntype, params);