Fix regression in LEAP

Commit 458cb30191 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>
This commit is contained in:
Jouni Malinen 2012-10-11 21:50:57 +03:00 committed by Jouni Malinen
parent 3a643324c6
commit ed61d2a5f9

View File

@ -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;
/*