aboutsummaryrefslogtreecommitdiffstats
path: root/net/wireless/reg.c
diff options
context:
space:
mode:
authorYuri Ershov <ext-yuri.ershov@nokia.com>2010-06-29 07:08:08 -0400
committerJohn W. Linville <linville@tuxdriver.com>2010-07-28 16:24:01 -0400
commitc4c322941ce0d7e2b7b8794ad70683123d9cb26a (patch)
tree05e21ce160325f8bbcec70abff35977fadd01ee2 /net/wireless/reg.c
parentd080e2755d840ede60128cc914a070868ebabc1e (diff)
cfg80211: Update of regulatory request initiator handling
In some cases there could be possible dereferencing freed pointer. The update is intended to avoid this issue. Signed-off-by: Yuri Ershov <ext-yuri.ershov@nokia.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/wireless/reg.c')
-rw-r--r--net/wireless/reg.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/wireless/reg.c b/net/wireless/reg.c
index ec4e76f95044..f180db0de66c 100644
--- a/net/wireless/reg.c
+++ b/net/wireless/reg.c
@@ -1306,6 +1306,7 @@ static void reg_process_hint(struct regulatory_request *reg_request)
1306{ 1306{
1307 int r = 0; 1307 int r = 0;
1308 struct wiphy *wiphy = NULL; 1308 struct wiphy *wiphy = NULL;
1309 enum nl80211_reg_initiator initiator = reg_request->initiator;
1309 1310
1310 BUG_ON(!reg_request->alpha2); 1311 BUG_ON(!reg_request->alpha2);
1311 1312
@@ -1325,7 +1326,7 @@ static void reg_process_hint(struct regulatory_request *reg_request)
1325 /* This is required so that the orig_* parameters are saved */ 1326 /* This is required so that the orig_* parameters are saved */
1326 if (r == -EALREADY && wiphy && 1327 if (r == -EALREADY && wiphy &&
1327 wiphy->flags & WIPHY_FLAG_STRICT_REGULATORY) 1328 wiphy->flags & WIPHY_FLAG_STRICT_REGULATORY)
1328 wiphy_update_regulatory(wiphy, reg_request->initiator); 1329 wiphy_update_regulatory(wiphy, initiator);
1329out: 1330out:
1330 mutex_unlock(&reg_mutex); 1331 mutex_unlock(&reg_mutex);
1331 mutex_unlock(&cfg80211_mutex); 1332 mutex_unlock(&cfg80211_mutex);