]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
Fix memory leak in P2P build without MLME
authorJouni Malinen <jouni.malinen@atheros.com>
Wed, 27 Oct 2010 08:26:46 +0000 (11:26 +0300)
committerJouni Malinen <j@w1.fi>
Wed, 27 Oct 2010 08:26:46 +0000 (11:26 +0300)
The ieee80211_sta_free_hw_features() function is now used outside
the MLME code, so better make sure it gets included in the build
to avoid leaking memory.

wpa_supplicant/mlme.c
wpa_supplicant/mlme.h
wpa_supplicant/wpa_supplicant.c
wpa_supplicant/wpa_supplicant_i.h

index eb60ac556b0439ab59ce2b969e692b3a0db5fcff..49713f510ff41f205011bf359faa31e03bf3cc4b 100644 (file)
@@ -3030,23 +3030,6 @@ void ieee80211_sta_rx(struct wpa_supplicant *wpa_s, const u8 *buf, size_t len,
 }
 
 
-void ieee80211_sta_free_hw_features(struct hostapd_hw_modes *hw_features,
-                                   size_t num_hw_features)
-{
-       size_t i;
-
-       if (hw_features == NULL)
-               return;
-
-       for (i = 0; i < num_hw_features; i++) {
-               os_free(hw_features[i].channels);
-               os_free(hw_features[i].rates);
-       }
-
-       os_free(hw_features);
-}
-
-
 int ieee80211_sta_init(struct wpa_supplicant *wpa_s)
 {
        u16 num_modes, flags;
index 5db36656c5a685770fdc9bdfbcb295543afff9de..fe3c6e429394695116517ff358d409fb3825ac1a 100644 (file)
@@ -37,8 +37,6 @@ int ieee80211_sta_associate(struct wpa_supplicant *wpa_s,
                            struct wpa_driver_associate_params *params);
 int ieee80211_sta_get_ssid(struct wpa_supplicant *wpa_s, u8 *ssid,
                           size_t *len);
-void ieee80211_sta_free_hw_features(struct hostapd_hw_modes *hw_features,
-                                   size_t num_hw_features);
 void ieee80211_sta_rx(struct wpa_supplicant *wpa_s, const u8 *buf, size_t len,
                      struct ieee80211_rx_status *rx_status);
 struct wpa_scan_results *
@@ -91,12 +89,6 @@ static inline int ieee80211_sta_get_ssid(struct wpa_supplicant *wpa_s,
        return -1;
 }
 
-static inline void
-ieee80211_sta_free_hw_features(struct hostapd_hw_modes *hw_features,
-                              size_t num_hw_features)
-{
-}
-
 static inline void
 ieee80211_sta_rx(struct wpa_supplicant *wpa_s, const u8 *buf, size_t len,
                 struct ieee80211_rx_status *rx_status)
index 0d443366dec04594aa321f2e13d638dafd8c777b..e4f72c1a5e5d941a7c63f317eef7ee8da70367aa 100644 (file)
@@ -2511,3 +2511,20 @@ void wpa_supplicant_update_config(struct wpa_supplicant *wpa_s)
 
        wpa_s->conf->changed_parameters = 0;
 }
+
+
+void ieee80211_sta_free_hw_features(struct hostapd_hw_modes *hw_features,
+                                   size_t num_hw_features)
+{
+       size_t i;
+
+       if (hw_features == NULL)
+               return;
+
+       for (i = 0; i < num_hw_features; i++) {
+               os_free(hw_features[i].channels);
+               os_free(hw_features[i].rates);
+       }
+
+       os_free(hw_features);
+}
index a4d7511c513773cf4ce77c1785f3bd93e00a11b9..b2e2aa29adc317eb5c9e374f868b1799e87746cf 100644 (file)
@@ -597,6 +597,8 @@ enum wpa_key_mgmt key_mgmt2driver(int key_mgmt);
 enum wpa_cipher cipher_suite2driver(int cipher);
 void wpa_supplicant_update_config(struct wpa_supplicant *wpa_s);
 void wpa_supplicant_clear_status(struct wpa_supplicant *wpa_s);
+void ieee80211_sta_free_hw_features(struct hostapd_hw_modes *hw_features,
+                                   size_t num_hw_features);
 
 /* events.c */
 void wpa_supplicant_mark_disassoc(struct wpa_supplicant *wpa_s);