diff options
-rw-r--r-- | asn1/rtse/packet-rtse-template.c | 10 | ||||
-rw-r--r-- | epan/dissectors/packet-rtse.c | 14 |
2 files changed, 20 insertions, 4 deletions
diff --git a/asn1/rtse/packet-rtse-template.c b/asn1/rtse/packet-rtse-template.c index dd55c7dd99..52be84cda6 100644 --- a/asn1/rtse/packet-rtse-template.c +++ b/asn1/rtse/packet-rtse-template.c @@ -190,6 +190,7 @@ dissect_rtse(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) int old_offset; proto_item *item=NULL; proto_tree *tree=NULL; + proto_tree *next_tree=NULL; tvbuff_t *next_tvb = NULL; tvbuff_t *data_tvb = NULL; fragment_data *frag_msg = NULL; @@ -285,7 +286,14 @@ dissect_rtse(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) old_offset=offset; offset=dissect_rtse_RTSE_apdus(TRUE, tvb, offset, &asn1_ctx, tree, -1); if(offset == old_offset){ - proto_tree_add_text(tree, tvb, offset, -1, "Internal error, zero-byte RTSE PDU"); + item = proto_tree_add_text(tree, tvb, offset, -1, "Unknown RTSE PDU"); + + if(item){ + expert_add_info_format (pinfo, item, PI_UNDECODED, PI_WARN, "Unknown RTSE PDU"); + next_tree=proto_item_add_subtree(item, ett_rtse_unknown); + dissect_unknown_ber(pinfo, tvb, offset, next_tree); + } + offset = tvb_length(tvb); break; } diff --git a/epan/dissectors/packet-rtse.c b/epan/dissectors/packet-rtse.c index 5d9a40e356..b2778ae29f 100644 --- a/epan/dissectors/packet-rtse.c +++ b/epan/dissectors/packet-rtse.c @@ -700,6 +700,7 @@ dissect_rtse(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) int old_offset; proto_item *item=NULL; proto_tree *tree=NULL; + proto_tree *next_tree=NULL; tvbuff_t *next_tvb = NULL; tvbuff_t *data_tvb = NULL; fragment_data *frag_msg = NULL; @@ -795,7 +796,14 @@ dissect_rtse(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) old_offset=offset; offset=dissect_rtse_RTSE_apdus(TRUE, tvb, offset, &asn1_ctx, tree, -1); if(offset == old_offset){ - proto_tree_add_text(tree, tvb, offset, -1, "Internal error, zero-byte RTSE PDU"); + item = proto_tree_add_text(tree, tvb, offset, -1, "Unknown RTSE PDU"); + + if(item){ + expert_add_info_format (pinfo, item, PI_UNDECODED, PI_WARN, "Unknown RTSE PDU"); + next_tree=proto_item_add_subtree(item, ett_rtse_unknown); + dissect_unknown_ber(pinfo, tvb, offset, next_tree); + } + offset = tvb_length(tvb); break; } @@ -947,7 +955,7 @@ void proto_register_rtse(void) { "rtse.T_octetString", HFILL }}, /*--- End of included file: packet-rtse-hfarr.c ---*/ -#line 340 "packet-rtse-template.c" +#line 348 "packet-rtse-template.c" }; /* List of subtrees */ @@ -969,7 +977,7 @@ void proto_register_rtse(void) { &ett_rtse_CallingSSuserReference, /*--- End of included file: packet-rtse-ettarr.c ---*/ -#line 349 "packet-rtse-template.c" +#line 357 "packet-rtse-template.c" }; module_t *rtse_module; |