aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-eap.c
diff options
context:
space:
mode:
authoretxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7>2012-02-05 13:09:10 +0000
committeretxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7>2012-02-05 13:09:10 +0000
commit3bb766c18bd5770964a57534c24fb51ee9740645 (patch)
treeb946fa7e4757124fd53926ab10fa54814a67c8e7 /epan/dissectors/packet-eap.c
parent7aea0aaa13963d04f9267099c2d201e2b4bfe1b1 (diff)
From billyjeans:
EAP-TLS cannot re-initialize properly if previous EAP-TLS conversation is not properly finished. https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=5633 git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@40863 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'epan/dissectors/packet-eap.c')
-rw-r--r--epan/dissectors/packet-eap.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/epan/dissectors/packet-eap.c b/epan/dissectors/packet-eap.c
index 7b477966f0..4351c7f95d 100644
--- a/epan/dissectors/packet-eap.c
+++ b/epan/dissectors/packet-eap.c
@@ -738,7 +738,7 @@ dissect_eap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
if (tree)
proto_tree_add_uint(eap_tree, hf_eap_type, tvb, 4, 1, eap_type);
- if (len > 5) {
+ if (len > 5 || (len == 5 && eap_type == EAP_TYPE_ID)) {
int offset = 5;
gint size = len - offset;
@@ -752,8 +752,10 @@ dissect_eap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
size, plurality(size, "", "s"),
tvb_format_text(tvb, offset, size));
}
- if(!pinfo->fd->flags.visited)
+ if(!pinfo->fd->flags.visited) {
conversation_state->leap_state = 0;
+ conversation_state->eap_tls_seq = -1;
+ }
break;
/*********************************************************************
@@ -816,6 +818,8 @@ dissect_eap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
more_fragments = test_flag(flags,EAP_TLS_FLAG_M);
has_length = test_flag(flags,EAP_TLS_FLAG_L);
+ if (test_flag(flags,EAP_TLS_FLAG_S))
+ conversation_state->eap_tls_seq = -1;
/* Flags field, 1 byte */
if (tree) {