diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2015-05-12 19:09:06 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2015-05-12 19:09:06 +0200 |
commit | 2cddc0b19a20dd061dbf199bf88005b37c540d2f (patch) | |
tree | a799ee1e79619f3a555bfb038d73dca21352e6de /libavformat | |
parent | 7a27aa15ec940f315f5446875db3757191f01a26 (diff) | |
download | ffmpeg-streaming-2cddc0b19a20dd061dbf199bf88005b37c540d2f.zip ffmpeg-streaming-2cddc0b19a20dd061dbf199bf88005b37c540d2f.tar.gz |
avformat/hevc: Check cpb_cnt_minus1
Fixes CID1239014
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavformat')
-rw-r--r-- | libavformat/hevc.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/libavformat/hevc.c b/libavformat/hevc.c index 94b30fe..26c352c 100644 --- a/libavformat/hevc.c +++ b/libavformat/hevc.c @@ -189,7 +189,7 @@ static void skip_sub_layer_hrd_parameters(GetBitContext *gb, } } -static void skip_hrd_parameters(GetBitContext *gb, uint8_t cprms_present_flag, +static int skip_hrd_parameters(GetBitContext *gb, uint8_t cprms_present_flag, unsigned int max_sub_layers_minus1) { unsigned int i; @@ -246,8 +246,11 @@ static void skip_hrd_parameters(GetBitContext *gb, uint8_t cprms_present_flag, else low_delay_hrd_flag = get_bits1(gb); - if (!low_delay_hrd_flag) + if (!low_delay_hrd_flag) { cpb_cnt_minus1 = get_ue_golomb_long(gb); + if (cpb_cnt_minus1 > 31) + return AVERROR_INVALIDDATA; + } if (nal_hrd_parameters_present_flag) skip_sub_layer_hrd_parameters(gb, cpb_cnt_minus1, @@ -257,6 +260,8 @@ static void skip_hrd_parameters(GetBitContext *gb, uint8_t cprms_present_flag, skip_sub_layer_hrd_parameters(gb, cpb_cnt_minus1, sub_pic_hrd_params_present_flag); } + + return 0; } static void skip_timing_info(GetBitContext *gb) |