aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJouni Malinen <j@w1.fi>2010-02-13 16:00:39 (GMT)
committerJouni Malinen <j@w1.fi>2010-02-13 16:00:39 (GMT)
commitb29d086d50f55e063ad9b09f47a02f22f35b1553 (patch)
tree4b7aa88a250001d238cc3ec8b1578d1954891700
parentaff5e54d4af7b6d7f018573f77550c4c925d88fb (diff)
downloadhostap-b29d086d50f55e063ad9b09f47a02f22f35b1553.zip
hostap-b29d086d50f55e063ad9b09f47a02f22f35b1553.tar.gz
hostap-b29d086d50f55e063ad9b09f47a02f22f35b1553.tar.bz2
EAP-TNC: Accept fragment ack frame with Flags field
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.
-rw-r--r--src/eap_peer/eap_tnc.c2
-rw-r--r--src/eap_server/eap_tnc.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/src/eap_peer/eap_tnc.c b/src/eap_peer/eap_tnc.c
index c560015..177d432 100644
--- a/src/eap_peer/eap_tnc.c
+++ b/src/eap_peer/eap_tnc.c
@@ -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;
diff --git a/src/eap_server/eap_tnc.c b/src/eap_server/eap_tnc.c
index 4cb3ecf..93f0cf0 100644
--- a/src/eap_server/eap_tnc.c
+++ b/src/eap_server/eap_tnc.c
@@ -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;