From 2bcf52dde786c745466dbe6eaa7b93b0129af827 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Tim-Philipp=20M=C3=BCller?= Date: Wed, 1 Jul 2009 13:07:48 +0100 Subject: [PATCH] qtdemux: error out instead of dividing by 0 Error out if timescale is 0. --- gst/qtdemux/qtdemux.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gst/qtdemux/qtdemux.c b/gst/qtdemux/qtdemux.c index eafaef8..f62419e 100644 --- a/gst/qtdemux/qtdemux.c +++ b/gst/qtdemux/qtdemux.c @@ -3585,7 +3585,7 @@ qtdemux_parse_samples (GstQTDemux * qtdemux, QtDemuxStream * stream, } } /* fill up empty timestamps with the last timestamp, this can happen when - * the last samples do not decoder and so we don't have timestamps for them. + * the last samples do not decode and so we don't have timestamps for them. * We however look at the last timestamp to estimate the track length so we * need something in here. */ for (; index < n_samples; index++) { @@ -3971,6 +3971,9 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak) GST_LOG_OBJECT (qtdemux, "track duration: %" G_GUINT64_FORMAT, stream->duration); + if (G_UNLIKELY (stream->timescale == 0 || qtdemux->timescale == 0)) + goto corrupt_file; + if (qtdemux->duration != G_MAXINT32 && stream->duration != G_MAXINT32) { guint64 tdur1, tdur2; -- 2.7.4