cfg80211: Update of regulatory request initiator handling
authorYuri Ershov <ext-yuri.ershov@nokia.com>
Tue, 29 Jun 2010 11:08:08 +0000 (15:08 +0400)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 28 Jul 2010 20:24:01 +0000 (16:24 -0400)
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>
net/wireless/reg.c

index ec4e76f95044b0af920b07d64f045d8a4e310f6c..f180db0de66cbc2163ce3dab641b46cb647226d2 100644 (file)
@@ -1306,6 +1306,7 @@ static void reg_process_hint(struct regulatory_request *reg_request)
 {
        int r = 0;
        struct wiphy *wiphy = NULL;
+       enum nl80211_reg_initiator initiator = reg_request->initiator;
 
        BUG_ON(!reg_request->alpha2);
 
@@ -1325,7 +1326,7 @@ static void reg_process_hint(struct regulatory_request *reg_request)
        /* This is required so that the orig_* parameters are saved */
        if (r == -EALREADY && wiphy &&
            wiphy->flags & WIPHY_FLAG_STRICT_REGULATORY)
-               wiphy_update_regulatory(wiphy, reg_request->initiator);
+               wiphy_update_regulatory(wiphy, initiator);
 out:
        mutex_unlock(&reg_mutex);
        mutex_unlock(&cfg80211_mutex);