From ee1a2bc6358adb0b85e02fb13dbc77332325d749 Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Thu, 11 Oct 2012 21:50:57 +0300 Subject: 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 --- src/eap_peer/eap.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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; /* -- cgit v1.1