From 18ca491bf13b76fc022373110ccac385fee0557c Mon Sep 17 00:00:00 2001 From: David Conrad Date: Mon, 11 Jan 2010 00:31:55 +0000 Subject: [PATCH] mkvdec: Avoid divide-by-zero crash on invalid real audio tracks Originally committed as revision 21129 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavformat/matroskadec.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c index 688169a8b6..59dc166734 100644 --- a/libavformat/matroskadec.c +++ b/libavformat/matroskadec.c @@ -1634,9 +1634,10 @@ static int matroska_parse_block(MatroskaDemuxContext *matroska, uint8_t *data, if (res == 0) { for (n = 0; n < laces; n++) { - if (st->codec->codec_id == CODEC_ID_RA_288 || - st->codec->codec_id == CODEC_ID_COOK || - st->codec->codec_id == CODEC_ID_ATRAC3) { + if ((st->codec->codec_id == CODEC_ID_RA_288 || + st->codec->codec_id == CODEC_ID_COOK || + st->codec->codec_id == CODEC_ID_ATRAC3) && + st->codec->block_align && track->audio.sub_packet_size) { int a = st->codec->block_align; int sps = track->audio.sub_packet_size; int cfs = track->audio.coded_framesize;