aboutsummaryrefslogtreecommitdiffstats
path: root/src/eap_peer
diff options
context:
space:
mode:
authorJouni Malinen <jouni@qca.qualcomm.com>2012-10-11 18:50:57 (GMT)
committerJouni Malinen <j@w1.fi>2012-10-11 18:50:57 (GMT)
commited61d2a5f94a37da2a0aa46e330f7c6e8348b4f4 (patch)
tree672c2acf54c62efc5423c474e86763e239f506ca /src/eap_peer
parent3a643324c6d6670f05a2cf91f8784d7056c8d423 (diff)
downloadhostap-ed61d2a5f94a37da2a0aa46e330f7c6e8348b4f4.zip
hostap-ed61d2a5f94a37da2a0aa46e330f7c6e8348b4f4.tar.gz
hostap-ed61d2a5f94a37da2a0aa46e330f7c6e8348b4f4.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>
Diffstat (limited to 'src/eap_peer')
-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;
/*