WPS: Fix current_ssid clearing on duplicate network removal
It was possible for the current network profile to be deleted when merging duplicated WPS credentials. However, this did not clear wpa_s->current_ssid and it was possible for something else to end up dereferencing that pointer to now freed memory. This could be hit, e.g., with ap_wps_mixed_cred. Fix this by clearing current_ssid also in this code path similarly to other cases of network block getting removed. Signed-off-by: Jouni Malinen <j@w1.fi>
This commit is contained in:
parent
e4a35f07d9
commit
4f9a5ea5cc
1 changed files with 2 additions and 0 deletions
|
@ -339,6 +339,8 @@ static void wpas_wps_remove_dup_network(struct wpa_supplicant *wpa_s,
|
|||
/* Remove the duplicated older network entry. */
|
||||
wpa_printf(MSG_DEBUG, "Remove duplicate network %d", ssid->id);
|
||||
wpas_notify_network_removed(wpa_s, ssid);
|
||||
if (wpa_s->current_ssid == ssid)
|
||||
wpa_s->current_ssid = NULL;
|
||||
wpa_config_remove_network(wpa_s->conf, ssid->id);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue