From 174fc1015e49a61c86cf2067596440d2c9cf332c Mon Sep 17 00:00:00 2001 From: Vincent Penquerc'h Date: Thu, 12 Jun 2014 10:00:55 +0100 Subject: aiffparse: bail out early when bytes per sample is not set This should always be set for valid files when we get there, and checking this avoids having ad hoc checks further down in several places. Coverity 1139698 --- gst/aiff/aiffparse.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'gst/aiff') diff --git a/gst/aiff/aiffparse.c b/gst/aiff/aiffparse.c index 1ba9e79e0..14a499311 100644 --- a/gst/aiff/aiffparse.c +++ b/gst/aiff/aiffparse.c @@ -1247,6 +1247,12 @@ gst_aiff_parse_stream_data (GstAiffParse * aiff) GstClockTime timestamp, next_timestamp, duration; guint64 pos, nextpos; + if (aiff->bytes_per_sample <= 0) { + GST_ELEMENT_ERROR (aiff, STREAM, WRONG_TYPE, (NULL), + ("File is not a valid AIFF file (invalid bytes per sample)")); + return GST_FLOW_ERROR; + } + iterate_adapter: GST_LOG_OBJECT (aiff, "offset: %" G_GINT64_FORMAT " , end: %" G_GINT64_FORMAT " , dataleft: %" @@ -1262,7 +1268,7 @@ iterate_adapter: MIN (gst_guint64_to_gdouble (aiff->dataleft), aiff->max_buf_size * ABS (aiff->segment.rate)); - if (desired >= aiff->bytes_per_sample && aiff->bytes_per_sample > 0) + if (desired >= aiff->bytes_per_sample) desired -= (desired % aiff->bytes_per_sample); GST_LOG_OBJECT (aiff, "Fetching %" G_GINT64_FORMAT " bytes of data " -- cgit v1.2.1