Fix memory leak in P2P build without MLME
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.
This commit is contained in:
parent
e11f5a2cbc
commit
2f9c6aa665
4 changed files with 19 additions and 25 deletions
|
@ -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)
|
int ieee80211_sta_init(struct wpa_supplicant *wpa_s)
|
||||||
{
|
{
|
||||||
u16 num_modes, flags;
|
u16 num_modes, flags;
|
||||||
|
|
|
@ -37,8 +37,6 @@ int ieee80211_sta_associate(struct wpa_supplicant *wpa_s,
|
||||||
struct wpa_driver_associate_params *params);
|
struct wpa_driver_associate_params *params);
|
||||||
int ieee80211_sta_get_ssid(struct wpa_supplicant *wpa_s, u8 *ssid,
|
int ieee80211_sta_get_ssid(struct wpa_supplicant *wpa_s, u8 *ssid,
|
||||||
size_t *len);
|
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,
|
void ieee80211_sta_rx(struct wpa_supplicant *wpa_s, const u8 *buf, size_t len,
|
||||||
struct ieee80211_rx_status *rx_status);
|
struct ieee80211_rx_status *rx_status);
|
||||||
struct wpa_scan_results *
|
struct wpa_scan_results *
|
||||||
|
@ -91,12 +89,6 @@ static inline int ieee80211_sta_get_ssid(struct wpa_supplicant *wpa_s,
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void
|
|
||||||
ieee80211_sta_free_hw_features(struct hostapd_hw_modes *hw_features,
|
|
||||||
size_t num_hw_features)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void
|
static inline void
|
||||||
ieee80211_sta_rx(struct wpa_supplicant *wpa_s, const u8 *buf, size_t len,
|
ieee80211_sta_rx(struct wpa_supplicant *wpa_s, const u8 *buf, size_t len,
|
||||||
struct ieee80211_rx_status *rx_status)
|
struct ieee80211_rx_status *rx_status)
|
||||||
|
|
|
@ -2511,3 +2511,20 @@ void wpa_supplicant_update_config(struct wpa_supplicant *wpa_s)
|
||||||
|
|
||||||
wpa_s->conf->changed_parameters = 0;
|
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);
|
||||||
|
}
|
||||||
|
|
|
@ -597,6 +597,8 @@ enum wpa_key_mgmt key_mgmt2driver(int key_mgmt);
|
||||||
enum wpa_cipher cipher_suite2driver(int cipher);
|
enum wpa_cipher cipher_suite2driver(int cipher);
|
||||||
void wpa_supplicant_update_config(struct wpa_supplicant *wpa_s);
|
void wpa_supplicant_update_config(struct wpa_supplicant *wpa_s);
|
||||||
void wpa_supplicant_clear_status(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 */
|
/* events.c */
|
||||||
void wpa_supplicant_mark_disassoc(struct wpa_supplicant *wpa_s);
|
void wpa_supplicant_mark_disassoc(struct wpa_supplicant *wpa_s);
|
||||||
|
|
Loading…
Reference in a new issue