From 95801b6a0727d6f7e6f1204ce812b1e81613307d Mon Sep 17 00:00:00 2001 From: Matthieu Castet Date: Fri, 22 Aug 2008 15:09:20 +0000 Subject: alac : check readsamplesize to ensure get_bits() doesn't fail. Patch by Matthieu Castet Originally committed as revision 14905 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/alac.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'libavcodec/alac.c') diff --git a/libavcodec/alac.c b/libavcodec/alac.c index cb710a6346..1817161160 100644 --- a/libavcodec/alac.c +++ b/libavcodec/alac.c @@ -411,7 +411,7 @@ static int alac_decode_frame(AVCodecContext *avctx, int channels; unsigned int outputsamples; int hassize; - int readsamplesize; + unsigned int readsamplesize; int wasted_bytes; int isnotcompressed; uint8_t interlacing_shift; @@ -476,6 +476,10 @@ static int alac_decode_frame(AVCodecContext *avctx, *outputsize = outputsamples * alac->bytespersample; readsamplesize = alac->setinfo_sample_size - (wasted_bytes * 8) + channels - 1; + if (readsamplesize > MIN_CACHE_BITS) { + av_log(avctx, AV_LOG_ERROR, "readsamplesize too big (%d)\n", readsamplesize); + return -1; + } if (!isnotcompressed) { /* so it is compressed */ -- cgit v1.2.3