avformat/hevc: Check cpb_cnt_minus1
Fixes CID1239014
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 2cddc0b19a
)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
@@ -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 max_sub_layers_minus1)
|
||||||
{
|
{
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
@@ -246,8 +246,11 @@ static void skip_hrd_parameters(GetBitContext *gb, uint8_t cprms_present_flag,
|
|||||||
else
|
else
|
||||||
low_delay_hrd_flag = get_bits1(gb);
|
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);
|
cpb_cnt_minus1 = get_ue_golomb_long(gb);
|
||||||
|
if (cpb_cnt_minus1 > 31)
|
||||||
|
return AVERROR_INVALIDDATA;
|
||||||
|
}
|
||||||
|
|
||||||
if (nal_hrd_parameters_present_flag)
|
if (nal_hrd_parameters_present_flag)
|
||||||
skip_sub_layer_hrd_parameters(gb, cpb_cnt_minus1,
|
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,
|
skip_sub_layer_hrd_parameters(gb, cpb_cnt_minus1,
|
||||||
sub_pic_hrd_params_present_flag);
|
sub_pic_hrd_params_present_flag);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void skip_timing_info(GetBitContext *gb)
|
static void skip_timing_info(GetBitContext *gb)
|
||||||
|
Reference in New Issue
Block a user