From 6d1b6f46927fe6bd9edfcd9ef63e74ab94f039ac Mon Sep 17 00:00:00 2001 From: AndersBroman Date: Wed, 13 May 2015 13:26:06 +0200 Subject: [VoIP] There has to be two separate routines for MEGACO and H248 as tap_id_offset is used to access tapinfo. Fixes a crash rported in Bug: 11132 Change-Id: I32ada3e0eb16d0e128ff67c5aec499890602eab0 Reviewed-on: https://code.wireshark.org/review/8449 Reviewed-by: Anders Broman --- ui/voip_calls.c | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) (limited to 'ui/voip_calls.c') diff --git a/ui/voip_calls.c b/ui/voip_calls.c index 911d760049..c937b8c073 100644 --- a/ui/voip_calls.c +++ b/ui/voip_calls.c @@ -2782,9 +2782,9 @@ remove_tap_listener_actrace_calls(voip_calls_tapinfo_t *tap_id_base) type == GCP_CMD_NOTIFY_REQ || type == GCP_CMD_SVCCHG_REQ || type == GCP_CMD_TOPOLOGY_REQ || \ type == GCP_CMD_CTX_ATTR_AUDIT_REQ ) + static gboolean -h248_calls_packet(void *tap_offset_ptr, packet_info *pinfo, epan_dissect_t *edt, const void *prot_info) { - voip_calls_tapinfo_t *tapinfo = tap_id_to_base(tap_offset_ptr, tap_id_offset_h248_); +h248_calls_packet_common(voip_calls_tapinfo_t *tapinfo, packet_info *pinfo, epan_dissect_t *edt, const void *prot_info) { const gcp_cmd_t *cmd = (const gcp_cmd_t *)prot_info; GList *list; voip_calls_info_t *callsinfo = NULL; @@ -2881,6 +2881,20 @@ h248_calls_packet(void *tap_offset_ptr, packet_info *pinfo, epan_dissect_t *edt, return TRUE; } +static gboolean +h248_calls_packet(void *tap_offset_ptr, packet_info *pinfo, epan_dissect_t *edt, const void *prot_info) { + voip_calls_tapinfo_t *tapinfo = tap_id_to_base(tap_offset_ptr, tap_id_offset_h248_); + + return h248_calls_packet_common(tapinfo, pinfo, edt, prot_info); +} + +static gboolean +megaco_calls_packet(void *tap_offset_ptr, packet_info *pinfo, epan_dissect_t *edt, const void *prot_info) { + voip_calls_tapinfo_t *tapinfo = tap_id_to_base(tap_offset_ptr, tap_id_offset_megaco_); + + return h248_calls_packet_common(tapinfo, pinfo, edt, prot_info); +} + void h248_calls_init_tap(voip_calls_tapinfo_t *tap_id_base) { @@ -2890,7 +2904,7 @@ h248_calls_init_tap(voip_calls_tapinfo_t *tap_id_base) NULL, 0, NULL, - h248_calls_packet, + megaco_calls_packet, NULL); if (error_string != NULL) { -- cgit v1.2.1