wpa_supplicant: Use relative time for TKIP Michael MIC failures
The MMIC failure code should use monotonic time to check whether 60 seconds have elapsed or not. For type-safety, use struct os_reltime for the timestamp variable, and also convert to using os_reltime_expired(). Signed-hostap: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
4e1eae1dff
commit
6473e5c842
2 changed files with 6 additions and 6 deletions
|
@ -2183,13 +2183,13 @@ wpa_supplicant_event_michael_mic_failure(struct wpa_supplicant *wpa_s,
|
|||
union wpa_event_data *data)
|
||||
{
|
||||
int pairwise;
|
||||
struct os_time t;
|
||||
struct os_reltime t;
|
||||
|
||||
wpa_msg(wpa_s, MSG_WARNING, "Michael MIC failure detected");
|
||||
pairwise = (data && data->michael_mic_failure.unicast);
|
||||
os_get_time(&t);
|
||||
if ((wpa_s->last_michael_mic_error &&
|
||||
t.sec - wpa_s->last_michael_mic_error <= 60) ||
|
||||
os_get_reltime(&t);
|
||||
if ((wpa_s->last_michael_mic_error.sec &&
|
||||
!os_reltime_expired(&t, &wpa_s->last_michael_mic_error, 60)) ||
|
||||
wpa_s->pending_mic_error_report) {
|
||||
if (wpa_s->pending_mic_error_report) {
|
||||
/*
|
||||
|
@ -2267,7 +2267,7 @@ wpa_supplicant_event_michael_mic_failure(struct wpa_supplicant *wpa_s,
|
|||
wpa_sm_key_request(wpa_s->wpa, 1, pairwise);
|
||||
#endif /* CONFIG_DELAYED_MIC_ERROR_REPORT */
|
||||
}
|
||||
wpa_s->last_michael_mic_error = t.sec;
|
||||
wpa_s->last_michael_mic_error = t;
|
||||
wpa_s->mic_errors_seen++;
|
||||
}
|
||||
|
||||
|
|
|
@ -344,7 +344,7 @@ struct wpa_supplicant {
|
|||
char *confanother;
|
||||
struct wpa_config *conf;
|
||||
int countermeasures;
|
||||
os_time_t last_michael_mic_error;
|
||||
struct os_reltime last_michael_mic_error;
|
||||
u8 bssid[ETH_ALEN];
|
||||
u8 pending_bssid[ETH_ALEN]; /* If wpa_state == WPA_ASSOCIATING, this
|
||||
* field contains the target BSSID. */
|
||||
|
|
Loading…
Reference in a new issue