From 5b0f7f04e75c65e75d33a7d673a914c31da664d8 Mon Sep 17 00:00:00 2001 From: Mark Nauwelaerts Date: Tue, 4 Aug 2009 11:37:16 +0200 Subject: avidemux: do not exceed maximum number of supported streams --- gst/avi/gstavidemux.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'gst/avi') diff --git a/gst/avi/gstavidemux.c b/gst/avi/gstavidemux.c index 71a1fa20..925bf558 100644 --- a/gst/avi/gstavidemux.c +++ b/gst/avi/gstavidemux.c @@ -1464,7 +1464,7 @@ too_small: static gboolean gst_avi_demux_parse_stream (GstAviDemux * avi, GstBuffer * buf) { - avi_stream_context *stream = &avi->stream[avi->num_streams]; + avi_stream_context *stream; GstElementClass *klass; GstPadTemplate *templ; GstBuffer *sub = NULL; @@ -1482,6 +1482,17 @@ gst_avi_demux_parse_stream (GstAviDemux * avi, GstBuffer * buf) GST_DEBUG_OBJECT (avi, "Parsing stream"); + if (avi->num_streams >= GST_AVI_DEMUX_MAX_STREAMS) { + GST_WARNING_OBJECT (avi, + "maximum no of streams (%d) exceeded, ignoring stream", + GST_AVI_DEMUX_MAX_STREAMS); + gst_buffer_unref (buf); + /* not a fatal error, let's say */ + return TRUE; + } + + stream = &avi->stream[avi->num_streams]; + /* initial settings */ stream->idx_duration = GST_CLOCK_TIME_NONE; stream->hdr_duration = GST_CLOCK_TIME_NONE; -- cgit