diff options
author | Michael Niedermayer <michael@niedermayer.cc> | 2019-09-25 16:18:32 +0200 |
---|---|---|
committer | Michael Niedermayer <michael@niedermayer.cc> | 2019-09-25 17:21:23 +0200 |
commit | 121bf1b3b8de8de82856e42b8ed5156d4d78b637 (patch) | |
tree | a4123e215ce86d8782177811446d6fee9dd80e45 /libavcodec/decode.c | |
parent | 68c80dc31245f0d173b6df622c2321fada79047a (diff) | |
download | ffmpeg-121bf1b3b8de8de82856e42b8ed5156d4d78b637.tar.gz |
avcodec/decode: Check max_samples in get_buffer_internal()
This checks max_samples at the same level as max_pixels
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Diffstat (limited to 'libavcodec/decode.c')
-rw-r--r-- | libavcodec/decode.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/libavcodec/decode.c b/libavcodec/decode.c index a9ea5a51e6..081847551e 100644 --- a/libavcodec/decode.c +++ b/libavcodec/decode.c @@ -1924,6 +1924,11 @@ static int get_buffer_internal(AVCodecContext *avctx, AVFrame *frame, int flags) av_log(avctx, AV_LOG_ERROR, "pic->data[*]!=NULL in get_buffer_internal\n"); return AVERROR(EINVAL); } + } else if (avctx->codec_type == AVMEDIA_TYPE_AUDIO) { + if (frame->nb_samples > avctx->max_samples) { + av_log(avctx, AV_LOG_ERROR, "samples per frame %d, exceeds max_samples %"PRId64"\n", frame->nb_samples, avctx->max_samples); + return AVERROR(EINVAL); + } } ret = ff_decode_frame_props(avctx, frame); if (ret < 0) |