mirror of
https://github.com/vanhoefm/fragattacks.git
synced 2024-11-25 00:38:24 -05:00
Fix TKIP countermeasures stopping in deinit paths
The eloop timeout to stop TKIP countermeasures has to be canceled on deinit path to avoid leaving bogus timeouts behind. Signed-hostap: Jouni Malinen <j@w1.fi>
This commit is contained in:
parent
e9c3c1afed
commit
01a1749156
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* hostapd / TKIP countermeasures
|
||||
* Copyright (c) 2002-2009, Jouni Malinen <j@w1.fi>
|
||||
* Copyright (c) 2002-2011, Jouni Malinen <j@w1.fi>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
@ -60,6 +60,12 @@ static void ieee80211_tkip_countermeasures_start(struct hostapd_data *hapd)
|
||||
}
|
||||
|
||||
|
||||
void ieee80211_tkip_countermeasures_deinit(struct hostapd_data *hapd)
|
||||
{
|
||||
eloop_cancel_timeout(ieee80211_tkip_countermeasures_stop, hapd, NULL);
|
||||
}
|
||||
|
||||
|
||||
void michael_mic_failure(struct hostapd_data *hapd, const u8 *addr, int local)
|
||||
{
|
||||
struct os_time now;
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* hostapd / TKIP countermeasures
|
||||
* Copyright (c) 2002-2009, Jouni Malinen <j@w1.fi>
|
||||
* Copyright (c) 2002-2011, Jouni Malinen <j@w1.fi>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
@ -16,5 +16,6 @@
|
||||
#define TKIP_COUNTERMEASURES_H
|
||||
|
||||
void michael_mic_failure(struct hostapd_data *hapd, const u8 *addr, int local);
|
||||
void ieee80211_tkip_countermeasures_deinit(struct hostapd_data *hapd);
|
||||
|
||||
#endif /* TKIP_COUNTERMEASURES_H */
|
||||
|
@ -548,6 +548,7 @@ void hostapd_reconfig_wpa(struct hostapd_data *hapd)
|
||||
|
||||
void hostapd_deinit_wpa(struct hostapd_data *hapd)
|
||||
{
|
||||
ieee80211_tkip_countermeasures_deinit(hapd);
|
||||
rsn_preauth_iface_deinit(hapd);
|
||||
if (hapd->wpa_auth) {
|
||||
wpa_deinit(hapd->wpa_auth);
|
||||
|
@ -96,8 +96,7 @@ static int wpa_supplicant_select_config(struct wpa_supplicant *wpa_s)
|
||||
}
|
||||
|
||||
|
||||
static void wpa_supplicant_stop_countermeasures(void *eloop_ctx,
|
||||
void *sock_ctx)
|
||||
void wpa_supplicant_stop_countermeasures(void *eloop_ctx, void *sock_ctx)
|
||||
{
|
||||
struct wpa_supplicant *wpa_s = eloop_ctx;
|
||||
|
||||
@ -1584,8 +1583,7 @@ static void wpa_supplicant_event_disassoc(struct wpa_supplicant *wpa_s,
|
||||
|
||||
|
||||
#ifdef CONFIG_DELAYED_MIC_ERROR_REPORT
|
||||
static void wpa_supplicant_delayed_mic_error_report(void *eloop_ctx,
|
||||
void *sock_ctx)
|
||||
void wpa_supplicant_delayed_mic_error_report(void *eloop_ctx, void *sock_ctx)
|
||||
{
|
||||
struct wpa_supplicant *wpa_s = eloop_ctx;
|
||||
|
||||
|
@ -434,6 +434,11 @@ static void wpa_supplicant_cleanup(struct wpa_supplicant *wpa_s)
|
||||
|
||||
wpa_supplicant_cancel_scan(wpa_s);
|
||||
wpa_supplicant_cancel_auth_timeout(wpa_s);
|
||||
eloop_cancel_timeout(wpa_supplicant_stop_countermeasures, wpa_s, NULL);
|
||||
#ifdef CONFIG_DELAYED_MIC_ERROR_REPORT
|
||||
eloop_cancel_timeout(wpa_supplicant_delayed_mic_error_report,
|
||||
wpa_s, NULL);
|
||||
#endif /* CONFIG_DELAYED_MIC_ERROR_REPORT */
|
||||
|
||||
wpas_wps_deinit(wpa_s);
|
||||
|
||||
|
@ -585,6 +585,8 @@ void wpa_supplicant_mark_disassoc(struct wpa_supplicant *wpa_s);
|
||||
int wpa_supplicant_connect(struct wpa_supplicant *wpa_s,
|
||||
struct wpa_bss *selected,
|
||||
struct wpa_ssid *ssid);
|
||||
void wpa_supplicant_stop_countermeasures(void *eloop_ctx, void *sock_ctx);
|
||||
void wpa_supplicant_delayed_mic_error_report(void *eloop_ctx, void *sock_ctx);
|
||||
|
||||
/* eap_register.c */
|
||||
int eap_register_methods(void);
|
||||
|
Loading…
Reference in New Issue
Block a user