diff options
Diffstat (limited to 'epan/dissectors/asn1')
-rw-r--r-- | epan/dissectors/asn1/h225/packet-h225-template.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/epan/dissectors/asn1/h225/packet-h225-template.c b/epan/dissectors/asn1/h225/packet-h225-template.c index e39971dfc4..c92f536238 100644 --- a/epan/dissectors/asn1/h225/packet-h225-template.c +++ b/epan/dissectors/asn1/h225/packet-h225-template.c @@ -44,6 +44,7 @@ #include <epan/tap.h> #include <epan/stat_tap_ui.h> #include <epan/rtd_table.h> +#include "packet-frame.h" #include "packet-tpkt.h" #include "packet-per.h" #include "packet-h225.h" @@ -329,6 +330,14 @@ h225ras_call_t * append_h225ras_call(h225ras_call_t *prev_call, packet_info *pin return h225ras_call; } +static void +h225_frame_end(void) +{ + /* next_tvb pointers are allocated in packet scope, clear it. */ + next_tvb_init(&h245_list); + next_tvb_init(&tp_list); +} + static int dissect_h225_H323UserInformation(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) { @@ -342,6 +351,7 @@ dissect_h225_H323UserInformation(tvbuff_t *tvb, packet_info *pinfo, proto_tree * h225_pi->msg_type = H225_CS; p_add_proto_data(pinfo->pool, pinfo, proto_h225, 0, h225_pi); + register_frame_end_routine(pinfo, h225_frame_end); next_tvb_init(&h245_list); next_tvb_init(&tp_list); @@ -377,6 +387,8 @@ dissect_h225_h225_RasMessage(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree h225_pi->msg_type = H225_RAS; p_add_proto_data(pinfo->pool, pinfo, proto_h225, 0, h225_pi); + register_frame_end_routine(pinfo, h225_frame_end); + col_set_str(pinfo->cinfo, COL_PROTOCOL, PSNAME); it=proto_tree_add_protocol_format(tree, proto_h225, tvb, offset, -1, PSNAME" RAS"); |