aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-user_encap.c
diff options
context:
space:
mode:
authorStig Bjørlykke <stig@bjorlykke.org>2011-03-29 11:08:15 +0000
committerStig Bjørlykke <stig@bjorlykke.org>2011-03-29 11:08:15 +0000
commitf7c84ad094500acc357be3c9b725243795213d5e (patch)
tree619e17241004261da8e42a733d0dc49e05e78f4b /epan/dissectors/packet-user_encap.c
parent7c083c0966c607a7fe0d2167184306003fc76db2 (diff)
From Pascal Quantin:
Added guard against proto_name's not resolved as protocols. svn path=/trunk/; revision=36392
Diffstat (limited to 'epan/dissectors/packet-user_encap.c')
-rw-r--r--epan/dissectors/packet-user_encap.c21
1 files changed, 15 insertions, 6 deletions
diff --git a/epan/dissectors/packet-user_encap.c b/epan/dissectors/packet-user_encap.c
index 433461390c..4602fd6e02 100644
--- a/epan/dissectors/packet-user_encap.c
+++ b/epan/dissectors/packet-user_encap.c
@@ -116,16 +116,22 @@ static void dissect_user(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree) {
call_dissector(encap->header_proto, hdr_tvb, pinfo, tree);
offset = encap->header_size;
if (encap->header_proto_name) {
- const char *proto_name = proto_get_protocol_name(proto_get_id_by_filter_name(encap->header_proto_name));
- proto_item_append_text(item, ", Header: %s (%s)", encap->header_proto_name, proto_name);
+ int proto_id = proto_get_id_by_filter_name(encap->header_proto_name);
+ if (proto_id != -1) {
+ const char *proto_name = proto_get_protocol_name(proto_id);
+ proto_item_append_text(item, ", Header: %s (%s)", encap->header_proto_name, proto_name);
+ }
}
}
payload_tvb = tvb_new_subset(tvb, encap->header_size, len, len);
call_dissector(encap->payload_proto, payload_tvb, pinfo, tree);
if (encap->payload_proto_name) {
- const char *proto_name = proto_get_protocol_name(proto_get_id_by_filter_name(encap->payload_proto_name));
- proto_item_append_text(item, ", Payload: %s (%s)", encap->payload_proto_name, proto_name);
+ int proto_id = proto_get_id_by_filter_name(encap->payload_proto_name);
+ if (proto_id != -1) {
+ const char *proto_name = proto_get_protocol_name(proto_id);
+ proto_item_append_text(item, ", Payload: %s (%s)", encap->payload_proto_name, proto_name);
+ }
}
if (encap->trailer_size) {
@@ -133,8 +139,11 @@ static void dissect_user(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree) {
call_dissector(encap->trailer_proto, trailer_tvb, pinfo, tree);
offset = encap->trailer_size;
if (encap->trailer_proto_name) {
- const char *proto_name = proto_get_protocol_name(proto_get_id_by_filter_name(encap->trailer_proto_name));
- proto_item_append_text(item, ", Trailer: %s (%s)", encap->trailer_proto_name, proto_name);
+ int proto_id = proto_get_id_by_filter_name(encap->trailer_proto_name);
+ if (proto_id != -1) {
+ const char *proto_name = proto_get_protocol_name(proto_id);
+ proto_item_append_text(item, ", Trailer: %s (%s)", encap->trailer_proto_name, proto_name);
+ }
}
}
}