From: Sebastian Dröge Date: Mon, 29 Dec 2014 14:00:02 +0000 (+0100) Subject: matroskademux: Don't get stuck at the same offset when searching for clusters X-Git-Tag: 1.6.0~684 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e596a3b6a77ba65e00b0f14d217b58a9d0a6d28b;p=platform%2Fupstream%2Fgst-plugins-good.git matroskademux: Don't get stuck at the same offset when searching for clusters This could happen if there is an invalid cluster with size 0, and in that case just error out instead of looping forever. --- diff --git a/gst/matroska/matroska-demux.c b/gst/matroska/matroska-demux.c index cdecceb..9b2bb0a 100644 --- a/gst/matroska/matroska-demux.c +++ b/gst/matroska/matroska-demux.c @@ -1610,6 +1610,11 @@ gst_matroska_demux_search_cluster (GstMatroskaDemux * demux, gint64 * pos) GST_DEBUG_OBJECT (demux, "cluster is first cluster -> OK"); break; } + if (newpos == demux->common.offset) { + GST_ERROR_OBJECT (demux, "Stuck at the same offset"); + ret = GST_FLOW_ERROR; + goto exit; + } demux->common.offset = newpos; ret = gst_matroska_read_common_peek_id_length_pull (&demux->common, GST_ELEMENT_CAST (demux), &id, &length, &needed);