diff options
author | Peter Wu <peter@lekensteyn.nl> | 2015-10-01 16:56:01 +0200 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2015-10-01 20:46:50 +0000 |
commit | b02a0ee48a51ccbb33ad76ce84ecb05409a6973a (patch) | |
tree | ac9accb993abff51e62b671699a1e4afcfd11bac /ui/rtp_stream.h | |
parent | ba5df1eea67b9e1cfde0a0d649d1b6db560fb745 (diff) | |
download | wireshark-b02a0ee48a51ccbb33ad76ce84ecb05409a6973a.tar.gz |
Fix crashes related to RTP Streams analysis
The data that describes RTP streams become invalid when packets are
re-dissected. This results in a crash in GTK when the "RTP Analyse"
option is used and and a crash in Qt when the display filter is changed
while the RTP Streams dialog is open.
Fix this by adding a tap_reset callback (modelled after mcaststream) to
the RTP tap listener that allows the GTK+ and Qt dialogs to clear the
displayed list of RTP streams.
Bug: 10016
Change-Id: I7478678db63d7ac8110c44c163844e9f66fad9e9
Reviewed-on: https://code.wireshark.org/review/10728
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
Petri-Dish: Peter Wu <peter@lekensteyn.nl>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'ui/rtp_stream.h')
-rw-r--r-- | ui/rtp_stream.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/ui/rtp_stream.h b/ui/rtp_stream.h index 358ec17890..d5c85b9f96 100644 --- a/ui/rtp_stream.h +++ b/ui/rtp_stream.h @@ -89,12 +89,14 @@ typedef enum typedef struct _rtpstream_tapinfo rtpstream_tapinfo_t; +typedef void (*rtpstream_tap_reset_cb)(rtpstream_tapinfo_t *tapinfo); typedef void (*rtpstream_tap_draw_cb)(rtpstream_tapinfo_t *tapinfo); typedef void (*tap_mark_packet_cb)(rtpstream_tapinfo_t *tapinfo, frame_data *fd); /* structure that holds the information about all detected streams */ /** struct holding all information of the tap */ struct _rtpstream_tapinfo { + rtpstream_tap_reset_cb tap_reset; /**< tap reset callback */ rtpstream_tap_draw_cb tap_draw; /**< tap draw callback */ tap_mark_packet_cb tap_mark_packet; /**< packet marking callback */ void *tap_data; /**< data for tap callbacks */ |