From 3ce4ec3bae3c7e49e5edf14d82c8f6a9b31acad2 Mon Sep 17 00:00:00 2001 From: Johannes Berg Date: Mon, 9 Aug 2010 15:52:03 +0200 Subject: [PATCH] --- yaml --- r: 209209 b: refs/heads/master c: fe100acddf438591ecf3582cb57241e560da70b7 h: refs/heads/master i: 209207: 630a5a2eb78013c79b0d24555b26da71c87b9832 v: v3 --- [refs] | 2 +- trunk/net/wireless/mlme.c | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 97d7a734f094..b88fa3ea8c19 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: a9fda88b27e71d727b6c85b3792b34a8a4bebf13 +refs/heads/master: fe100acddf438591ecf3582cb57241e560da70b7 diff --git a/trunk/net/wireless/mlme.c b/trunk/net/wireless/mlme.c index e74a1a2119d3..d1a3fb99fdf2 100644 --- a/trunk/net/wireless/mlme.c +++ b/trunk/net/wireless/mlme.c @@ -843,13 +843,19 @@ int cfg80211_mlme_action(struct cfg80211_registered_device *rdev, return -EINVAL; if (mgmt->u.action.category != WLAN_CATEGORY_PUBLIC) { /* Verify that we are associated with the destination AP */ + wdev_lock(wdev); + if (!wdev->current_bss || memcmp(wdev->current_bss->pub.bssid, mgmt->bssid, ETH_ALEN) != 0 || (wdev->iftype == NL80211_IFTYPE_STATION && memcmp(wdev->current_bss->pub.bssid, mgmt->da, - ETH_ALEN) != 0)) + ETH_ALEN) != 0)) { + wdev_unlock(wdev); return -ENOTCONN; + } + + wdev_unlock(wdev); } if (memcmp(mgmt->sa, dev->dev_addr, ETH_ALEN) != 0)