aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-gmhdr.c
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2013-09-05 01:39:35 +0000
committerMichael Mann <mmann78@netscape.net>2013-09-05 01:39:35 +0000
commit0c49b4d872c8d46cf4d28bf91f8861cf1bc0e122 (patch)
treec236fcc05e0fb91f87a5b628a5ca0a584c112757 /epan/dissectors/packet-gmhdr.c
parente65df7f453b4a2c7fcab788777c89c03eb12ed42 (diff)
Add filterable expert info to dissect_802_3() and clean up the shrapnel.
svn path=/trunk/; revision=51761
Diffstat (limited to 'epan/dissectors/packet-gmhdr.c')
-rw-r--r--epan/dissectors/packet-gmhdr.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/epan/dissectors/packet-gmhdr.c b/epan/dissectors/packet-gmhdr.c
index 63e1adb68d..e9f78c3a48 100644
--- a/epan/dissectors/packet-gmhdr.c
+++ b/epan/dissectors/packet-gmhdr.c
@@ -121,6 +121,7 @@ static gint ett_srcport = -1;
static gint ett_gmtrailer = -1;
static expert_field ei_gmhdr_field_length_invalid = EI_INIT;
+static expert_field ei_gmhdr_len = EI_INIT;
static void
dissect_gmtlv(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *gmhdr_tree, guint offset, guint16 length)
@@ -256,7 +257,7 @@ dissect_gmhdr(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
}
dissect_802_3(encap_proto, is_802_2, tvb, offset, pinfo, tree, gmhdr_tree,
- hf_gmhdr_len, hf_gmhdr_trailer, 0);
+ hf_gmhdr_len, hf_gmhdr_trailer, &ei_gmhdr_len, 0);
} else {
ethertype(encap_proto, tvb, offset, pinfo, tree, gmhdr_tree,
hf_gmhdr_etype, hf_gmhdr_trailer, 0);
@@ -461,6 +462,7 @@ proto_register_gmhdr(void)
};
static ei_register_info ei[] = {
{ &ei_gmhdr_field_length_invalid, { "gmhdr.field_length_invalid", PI_MALFORMED, PI_ERROR, "Field length invalid", EXPFILL }},
+ { &ei_gmhdr_len, { "gmhdr.len.past_end", PI_MALFORMED, PI_ERROR, "Length field value goes past the end of the payload", EXPFILL }},
};
module_t *gmhdr_module;