diff --git a/src/eap_peer/eap.c b/src/eap_peer/eap.c index 2ed74b8f0..a4c9b2506 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; /*