mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-24 13:56:33 +02:00
alac : check readsamplesize to ensure get_bits() doesn't
fail. Patch by Matthieu Castet <castet.matthieu AT free fr> Originally committed as revision 14905 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
ec6cda8c6e
commit
95801b6a07
@ -411,7 +411,7 @@ static int alac_decode_frame(AVCodecContext *avctx,
|
|||||||
int channels;
|
int channels;
|
||||||
unsigned int outputsamples;
|
unsigned int outputsamples;
|
||||||
int hassize;
|
int hassize;
|
||||||
int readsamplesize;
|
unsigned int readsamplesize;
|
||||||
int wasted_bytes;
|
int wasted_bytes;
|
||||||
int isnotcompressed;
|
int isnotcompressed;
|
||||||
uint8_t interlacing_shift;
|
uint8_t interlacing_shift;
|
||||||
@ -476,6 +476,10 @@ static int alac_decode_frame(AVCodecContext *avctx,
|
|||||||
|
|
||||||
*outputsize = outputsamples * alac->bytespersample;
|
*outputsize = outputsamples * alac->bytespersample;
|
||||||
readsamplesize = alac->setinfo_sample_size - (wasted_bytes * 8) + channels - 1;
|
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) {
|
if (!isnotcompressed) {
|
||||||
/* so it is compressed */
|
/* so it is compressed */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user