diff options
-rw-r--r-- | gst/aiff/aiffparse.c | 8 |
1 files changed, 7 insertions, 1 deletions
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 " |