net: wireless: bcmdhd: Add proper cleaning for ap_info structure
authorDmitry Shmidt <dimitrysh@google.com>
Mon, 17 Oct 2011 00:12:29 +0000 (17:12 -0700)
committermgross <mark.gross@intel.com>
Wed, 9 Nov 2011 20:24:58 +0000 (12:24 -0800)
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
drivers/net/wireless/bcmdhd/wl_cfg80211.c
drivers/net/wireless/bcmdhd/wl_cfgp2p.c

index 00cbfaf..2703784 100644 (file)
@@ -3858,9 +3858,18 @@ wl_cfg80211_add_set_beacon(struct wiphy *wiphy, struct net_device *dev,
                                        return BCME_ERROR;
                                }
                                wl->ap_info->security_mode = true;
-                               kfree(wl->ap_info->rsn_ie);
-                               kfree(wl->ap_info->wpa_ie);
-                               kfree(wl->ap_info->wps_ie);
+                               if (wl->ap_info->rsn_ie) {
+                                       kfree(wl->ap_info->rsn_ie);
+                                       wl->ap_info->rsn_ie = NULL;
+                               }
+                               if (wl->ap_info->wpa_ie) {
+                                       kfree(wl->ap_info->wpa_ie);
+                                       wl->ap_info->wpa_ie = NULL;
+                               }
+                               if (wl->ap_info->wps_ie) {
+                                       kfree(wl->ap_info->wps_ie);
+                                       wl->ap_info->wps_ie = NULL;
+                               }
                                if (wpa_ie != NULL) {
                                        /* WPAIE */
                                        wl->ap_info->rsn_ie = NULL;
index 0251d82..4ee6557 100644 (file)
@@ -112,6 +112,7 @@ wl_cfgp2p_deinit_priv(struct wl_priv *wl)
 {
        if (wl->p2p) {
                kfree(wl->p2p);
+               wl->p2p = NULL;
        }
        wl->p2p_supported = 0;
 }