qtdemux: Fix iteration bug
authorThiago Santos <thiago.sousa.santos@collabora.co.uk>
Sat, 11 Sep 2010 01:41:03 +0000 (22:41 -0300)
committerMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
Fri, 3 Dec 2010 14:50:32 +0000 (15:50 +0100)
Avoid infinite loop when iterating traf

gst/qtdemux/qtdemux.c

index 9b8f764..4ec55e0 100644 (file)
@@ -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);
   }