diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2015-05-14 21:29:19 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2015-06-17 21:50:07 +0200 |
commit | b259c7e891016df2c6a8f1b84c62838f5b7c68ff (patch) | |
tree | 352ce04db9720b7bebd66fe34f04e6366f414e77 | |
parent | d9194389049b7e63707e7549fb43b72591d50a53 (diff) | |
download | ffmpeg-b259c7e891016df2c6a8f1b84c62838f5b7c68ff.tar.gz |
avcodec/dcadec: Check subsubframes
Fixes: CID1239152
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit a9bf628bfdad142763880a3d1ccb6058040dda57)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | libavcodec/dcadec.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/libavcodec/dcadec.c b/libavcodec/dcadec.c index 1d020badc1..43fc40d6c9 100644 --- a/libavcodec/dcadec.c +++ b/libavcodec/dcadec.c @@ -847,6 +847,10 @@ static int dca_subframe_header(DCAContext *s, int base_channel, int block_index) if (!base_channel) { s->subsubframes[s->current_subframe] = get_bits(&s->gb, 2) + 1; + if (block_index + s->subsubframes[s->current_subframe] > s->sample_blocks/8) { + s->subsubframes[s->current_subframe] = 1; + return AVERROR_INVALIDDATA; + } s->partial_samples[s->current_subframe] = get_bits(&s->gb, 3); } |