mirror of
https://github.com/vanhoefm/fragattacks.git
synced 2025-01-30 08:44:03 -05:00
Cancel delayed scheduled scan when wpa_supplicant cleans up
Because a delayed scheduled scan will access the members of struct wpa_supplicant which is freed and this can result in a crash, wpa_supplicant needs to cancel delayed scheduled scan during cleanups. Signed-hostap: Chengyi Zhao <chengyix.zhao@gmail.com>
This commit is contained in:
parent
69dd2967db
commit
831770bffe
@ -1229,6 +1229,23 @@ void wpa_supplicant_cancel_scan(struct wpa_supplicant *wpa_s)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* wpa_supplicant_cancel_delayed_sched_scan - Stop a delayed scheduled scan
|
||||||
|
* @wpa_s: Pointer to wpa_supplicant data
|
||||||
|
*
|
||||||
|
* This function is used to stop a delayed scheduled scan.
|
||||||
|
*/
|
||||||
|
void wpa_supplicant_cancel_delayed_sched_scan(struct wpa_supplicant *wpa_s)
|
||||||
|
{
|
||||||
|
if (!wpa_s->sched_scan_supported)
|
||||||
|
return;
|
||||||
|
|
||||||
|
wpa_dbg(wpa_s, MSG_DEBUG, "Cancelling delayed sched scan");
|
||||||
|
eloop_cancel_timeout(wpa_supplicant_delayed_sched_scan_timeout,
|
||||||
|
wpa_s, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* wpa_supplicant_cancel_sched_scan - Stop running scheduled scans
|
* wpa_supplicant_cancel_sched_scan - Stop running scheduled scans
|
||||||
* @wpa_s: Pointer to wpa_supplicant data
|
* @wpa_s: Pointer to wpa_supplicant data
|
||||||
|
@ -15,6 +15,7 @@ int wpa_supplicant_delayed_sched_scan(struct wpa_supplicant *wpa_s,
|
|||||||
int sec, int usec);
|
int sec, int usec);
|
||||||
int wpa_supplicant_req_sched_scan(struct wpa_supplicant *wpa_s);
|
int wpa_supplicant_req_sched_scan(struct wpa_supplicant *wpa_s);
|
||||||
void wpa_supplicant_cancel_scan(struct wpa_supplicant *wpa_s);
|
void wpa_supplicant_cancel_scan(struct wpa_supplicant *wpa_s);
|
||||||
|
void wpa_supplicant_cancel_delayed_sched_scan(struct wpa_supplicant *wpa_s);
|
||||||
void wpa_supplicant_cancel_sched_scan(struct wpa_supplicant *wpa_s);
|
void wpa_supplicant_cancel_sched_scan(struct wpa_supplicant *wpa_s);
|
||||||
void wpa_supplicant_notify_scanning(struct wpa_supplicant *wpa_s,
|
void wpa_supplicant_notify_scanning(struct wpa_supplicant *wpa_s,
|
||||||
int scanning);
|
int scanning);
|
||||||
|
@ -421,6 +421,7 @@ static void wpa_supplicant_cleanup(struct wpa_supplicant *wpa_s)
|
|||||||
|
|
||||||
wpa_bss_deinit(wpa_s);
|
wpa_bss_deinit(wpa_s);
|
||||||
|
|
||||||
|
wpa_supplicant_cancel_delayed_sched_scan(wpa_s);
|
||||||
wpa_supplicant_cancel_scan(wpa_s);
|
wpa_supplicant_cancel_scan(wpa_s);
|
||||||
wpa_supplicant_cancel_auth_timeout(wpa_s);
|
wpa_supplicant_cancel_auth_timeout(wpa_s);
|
||||||
eloop_cancel_timeout(wpa_supplicant_stop_countermeasures, wpa_s, NULL);
|
eloop_cancel_timeout(wpa_supplicant_stop_countermeasures, wpa_s, NULL);
|
||||||
|
Loading…
Reference in New Issue
Block a user