]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
EAP-TNC: Accept fragment ack frame with Flags field
authorJouni Malinen <j@w1.fi>
Sat, 13 Feb 2010 16:00:39 +0000 (18:00 +0200)
committerJouni Malinen <j@w1.fi>
Sat, 13 Feb 2010 16:00:39 +0000 (18:00 +0200)
TNC IF-T specification is unclear on the exact contents of the fragment
acknowledgement frame. An interoperability issue with the tncs@fhh
implementation was reported by Arne Welzel
<arne.welzel@stud.fh-hannover.de> due to the different interpretations
of the specification. Relax EAP-TNC server/peer validation rules to
accept fragmentation acknowledgement frames to include the Flags field
to avoid this issue.

src/eap_peer/eap_tnc.c
src/eap_server/eap_tnc.c

index c56001528113ee4b5db908495eab613a7b9fce6f..177d432c1c1cc7a2c56b3d438f21f44398c74371 100644 (file)
@@ -262,7 +262,7 @@ static struct wpabuf * eap_tnc_process(struct eap_sm *sm, void *priv,
                   "Message Length %u", flags, message_length);
 
        if (data->state == WAIT_FRAG_ACK) {
-               if (len != 0) {
+               if (len > 1) {
                        wpa_printf(MSG_DEBUG, "EAP-TNC: Unexpected payload in "
                                   "WAIT_FRAG_ACK state");
                        ret->ignore = TRUE;
index 4cb3ecfb056556101641d93a1c852db9a248d6ea..93f0cf0226558e0db1ef2f0f6c16558a6a3f1c1b 100644 (file)
@@ -453,7 +453,7 @@ static void eap_tnc_process(struct eap_sm *sm, void *priv,
                   "Message Length %u", flags, message_length);
 
        if (data->state == WAIT_FRAG_ACK) {
-               if (len != 0) {
+               if (len > 1) {
                        wpa_printf(MSG_DEBUG, "EAP-TNC: Unexpected payload "
                                   "in WAIT_FRAG_ACK state");
                        data->state = FAIL;