diff options
author | Jouni Malinen <jouni@qca.qualcomm.com> | 2012-10-11 21:50:57 +0300 |
---|---|---|
committer | Chirayu Desai <cdesai@cyanogenmod.org> | 2013-02-02 18:39:55 +0530 |
commit | ee1a2bc6358adb0b85e02fb13dbc77332325d749 (patch) | |
tree | f55f8ff36552445aa72d19aa5aa590a8cc9161c9 | |
parent | 581ae3aa1c037b6bc752eae5e35ca204bd7d2b11 (diff) | |
download | external_wpa_supplicant_8-ee1a2bc6358adb0b85e02fb13dbc77332325d749.zip external_wpa_supplicant_8-ee1a2bc6358adb0b85e02fb13dbc77332325d749.tar.gz external_wpa_supplicant_8-ee1a2bc6358adb0b85e02fb13dbc77332325d749.tar.bz2 |
Fix regression in LEAP
Commit 458cb3019108b6cb8c0c1cab94ae6ebf244eda27 broke LEAP since it
rejects EAP-Success packet that is used within LEAP and this frame does
not have a payload. Fix LEAP by relaxing the generic EAP packet
validation if LEAP has been negotiated.
Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
-rw-r--r-- | src/eap_peer/eap.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/eap_peer/eap.c b/src/eap_peer/eap.c index 2ed74b8..a4c9b25 100644 --- a/src/eap_peer/eap.c +++ b/src/eap_peer/eap.c @@ -348,6 +348,7 @@ SM_STATE(EAP, METHOD) { struct wpabuf *eapReqData; struct eap_method_ret ret; + int min_len = 1; SM_ENTRY(EAP, METHOD); if (sm->m == NULL) { @@ -356,7 +357,9 @@ SM_STATE(EAP, METHOD) } eapReqData = eapol_get_eapReqData(sm); - if (!eap_hdr_len_valid(eapReqData, 1)) + if (sm->m->vendor == EAP_VENDOR_IETF && sm->m->method == EAP_TYPE_LEAP) + min_len = 0; /* LEAP uses EAP-Success without payload */ + if (!eap_hdr_len_valid(eapReqData, min_len)) return; /* |