1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00

opusdec: make sure all substreams have the same number of coded samples

Fixes invalid writes with invalid multichannel streams.

CC:libav-stable@libav.org
This commit is contained in:
Anton Khirnov 2014-11-24 11:16:46 +01:00
parent 96fda42a8f
commit 1973079417

View File

@ -500,6 +500,12 @@ static int opus_decode_packet(AVCodecContext *avctx, void *data,
av_log(avctx, AV_LOG_ERROR, "Error parsing the packet header.\n"); av_log(avctx, AV_LOG_ERROR, "Error parsing the packet header.\n");
return ret; return ret;
} }
if (coded_samples != s->packet.frame_count * s->packet.frame_duration) {
av_log(avctx, AV_LOG_ERROR,
"Mismatching coded sample count in substream %d.\n", i);
return AVERROR_INVALIDDATA;
}
s->silk_samplerate = get_silk_samplerate(s->packet.config); s->silk_samplerate = get_silk_samplerate(s->packet.config);
} }