]> git.sesse.net Git - ffmpeg/blobdiff - libavformat/aiffdec.c
Merge commit 'c3f113d58488df7594a489bdbb993a69ad47063c'
[ffmpeg] / libavformat / aiffdec.c
index cd916f910882a2e8744f0006f4a959e314f08465..59e969d12d48c602af742e9aa07e8e25b87aca45 100644 (file)
@@ -371,6 +371,11 @@ static int aiff_read_packet(AVFormatContext *s,
     if (max_size <= 0)
         return AVERROR_EOF;
 
+    if (!st->codecpar->block_align) {
+        av_log(s, AV_LOG_ERROR, "block_align not set\n");
+        return AVERROR_INVALIDDATA;
+    }
+
     /* Now for that packet */
     switch (st->codecpar->codec_id) {
     case AV_CODEC_ID_ADPCM_IMA_QT:
@@ -380,7 +385,7 @@ static int aiff_read_packet(AVFormatContext *s,
         size = st->codecpar->block_align;
         break;
     default:
-        size = (MAX_SIZE / st->codecpar->block_align) * st->codecpar->block_align;
+        size = st->codecpar->block_align ? (MAX_SIZE / st->codecpar->block_align) * st->codecpar->block_align : MAX_SIZE;
     }
     size = FFMIN(max_size, size);
     res = av_get_packet(s->pb, pkt, size);