path: root/src/rsn_supp
diff options
authorJouni Malinen <jouni.malinen@atheros.com>2008-11-21 13:31:25 (GMT)
committerJouni Malinen <j@w1.fi>2008-11-21 13:31:25 (GMT)
commit1ac2d4a9eee938ae237f07ac78b0e3925ef56846 (patch)
treef9faebcd80219ce5f4c06005b8dfc8518da811cb /src/rsn_supp
parent76e6f26a9440debc3ee0256fd8bba67118230443 (diff)
Fixed canceling of PMKSA caching with driver generated RSN IE
It looks like some Windows NDIS drivers (e.g., Intel) do not clear the PMKID list even when wpa_supplicant explicitly sets the list to be empty. In such a case, the driver ends up trying to use PMKSA caching with the AP and wpa_supplicant may not have the PMK that would be needed to complete 4-way handshake. RSN processing already had some code for aborting PMKSA caching by sending EAPOL-Start. However, this was not triggered in this particular case where the driver generates the RSN IE. With this change, this case is included, too, and the failed PMKSA caching attempt is cleanly canceled and wpa_supplicant can fall back to full EAP authentication.
Diffstat (limited to 'src/rsn_supp')
1 files changed, 1 insertions, 1 deletions
diff --git a/src/rsn_supp/wpa.c b/src/rsn_supp/wpa.c
index 1da54f2..b221476 100644
--- a/src/rsn_supp/wpa.c
+++ b/src/rsn_supp/wpa.c
@@ -266,7 +266,7 @@ static int wpa_supplicant_get_pmk(struct wpa_sm *sm,
"caching attempt");
sm->cur_pmksa = NULL;
abort_cached = 1;
- } else {
+ } else if (!abort_cached) {
return -1;