aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJouni Malinen <jouni@qca.qualcomm.com>2012-10-11 21:50:57 +0300
committerChirayu Desai <cdesai@cyanogenmod.org>2013-02-02 18:39:55 +0530
commitee1a2bc6358adb0b85e02fb13dbc77332325d749 (patch)
treef55f8ff36552445aa72d19aa5aa590a8cc9161c9
parent581ae3aa1c037b6bc752eae5e35ca204bd7d2b11 (diff)
downloadexternal_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.c5
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;
/*