From 7dabc7764ed5a9a7aceccf50055ed204c0c0c892 Mon Sep 17 00:00:00 2001 From: Thiago Santos Date: Fri, 10 Sep 2010 22:41:03 -0300 Subject: [PATCH] qtdemux: Fix iteration bug Avoid infinite loop when iterating traf --- gst/qtdemux/qtdemux.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gst/qtdemux/qtdemux.c b/gst/qtdemux/qtdemux.c index 9b8f764..4ec55e0 100644 --- a/gst/qtdemux/qtdemux.c +++ b/gst/qtdemux/qtdemux.c @@ -2038,7 +2038,7 @@ qtdemux_parse_moof (GstQTDemux * qtdemux, const guint8 * buffer, guint length, &default_sample_size); /* skip trun atoms that don't match the track ID */ if (id != stream->track_id) - continue; + goto next; /* Track Run node */ trun_node = qtdemux_tree_get_child_by_type_full (traf_node, FOURCC_trun, @@ -2050,6 +2050,7 @@ qtdemux_parse_moof (GstQTDemux * qtdemux, const guint8 * buffer, guint length, trun_node = qtdemux_tree_get_sibling_by_type (trun_node, FOURCC_trun); } + next: /* iterate all siblings */ traf_node = qtdemux_tree_get_sibling_by_type (traf_node, FOURCC_traf); } -- 2.7.4