summaryrefslogtreecommitdiff
path: root/ui/mcast_stream.c
diff options
context:
space:
mode:
authorPeter Wu <peter@lekensteyn.nl>2015-11-27 17:57:34 +0100
committerAlexis La Goutte <alexis.lagoutte@gmail.com>2015-11-27 21:15:11 +0000
commitd7f12436709e40d58d7fcdfbcdd08740c039e162 (patch)
tree7c55ea87976924a9b841b39fb583ee6962d96d3f /ui/mcast_stream.c
parent56625dd4562d89f711ab68caa8cf849509b0970f (diff)
downloadwireshark-d7f12436709e40d58d7fcdfbcdd08740c039e162.tar.gz
Fix crash in UDP Multicast Streams dialog
Attempting to open the UDP Multicast Streams dialog in the GTK UI triggers an instant crash (heap-buffer-overflow). Déjà vu. This is the same problem that plagued the RTP Streams dialog. This patch is based on the fix in v1.99.3rc0-33-g2c65b33 (mcaststream_dlg_update confused GList vs. mcaststream_tapinfo_t). After fixing that, the dialog crashed shortly after setting parameters (heap-use-after-free). That fix is based on v1.99.10rc0-292-gb02a0ee (after a retap, the old items were still present in the list). Just that change was not enough as clearing the list still triggered a signal, possibly because of the "changed" signal (while the RTP player uses a selection setter function). Apply the patch based on v1.99.10rc0-270-g01bd832 (disable selection while clearing). Change-Id: I152bac6f954d8d1c5c20d6c7d56a196c3e20c681 Reviewed-on: https://code.wireshark.org/review/12227 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: Alexis La Goutte <alexis.lagoutte@gmail.com>
Diffstat (limited to 'ui/mcast_stream.c')
-rw-r--r--ui/mcast_stream.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/ui/mcast_stream.c b/ui/mcast_stream.c
index 6d354a4e5d..77dfee7036 100644
--- a/ui/mcast_stream.c
+++ b/ui/mcast_stream.c
@@ -118,7 +118,7 @@ mcaststream_reset_cb(void *ti_ptr)
mcaststream_tapinfo_t *tapinfo = (mcaststream_tapinfo_t *)ti_ptr;
if (tapinfo) {
if (tapinfo->tap_reset) {
- tapinfo->tap_reset(ti_ptr);
+ tapinfo->tap_reset(tapinfo);
}
mcaststream_reset(tapinfo);
}
@@ -134,7 +134,7 @@ mcaststream_draw(void *ti_ptr)
g_signal_emit_by_name(top_level, "signal_mcaststream_update");
*/
if (tapinfo && tapinfo->tap_draw) {
- tapinfo->tap_draw(ti_ptr);
+ tapinfo->tap_draw(tapinfo);
}
return;
}