Add helper function to clear and free wpa_psk list
This change adds the function hostapd_config_clear_wpa_psk() that deletes an entire wpa_psk structure, making sure to follow the linked list and to free the allocated memory of each PSK node. This helps to prevent memory leaks when using PSKs from multiple sources and reconfiguring the AP during runtime. Signed-off-by: Stefan Tomanek <stefan.tomanek@wertarbyte.de>
This commit is contained in:
parent
cfb5576d93
commit
891dfb3336
5 changed files with 21 additions and 17 deletions
|
@ -362,10 +362,9 @@ static int hapd_wps_reconfig_in_memory(struct hostapd_data *hapd,
|
|||
if (bss->ssid.wpa_passphrase)
|
||||
os_memcpy(bss->ssid.wpa_passphrase, cred->key,
|
||||
cred->key_len);
|
||||
os_free(bss->ssid.wpa_psk);
|
||||
bss->ssid.wpa_psk = NULL;
|
||||
hostapd_config_clear_wpa_psk(&bss->ssid.wpa_psk);
|
||||
} else if (cred->key_len == 64) {
|
||||
os_free(bss->ssid.wpa_psk);
|
||||
hostapd_config_clear_wpa_psk(&bss->ssid.wpa_psk);
|
||||
bss->ssid.wpa_psk =
|
||||
os_zalloc(sizeof(struct hostapd_wpa_psk));
|
||||
if (bss->ssid.wpa_psk &&
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue