Commit ba80b8d2 authored by Michael Niedermayer's avatar Michael Niedermayer

avcodec/hevc: check nb_cpb

Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent 7a4a5515
...@@ -265,7 +265,7 @@ static void decode_sublayer_hrd(HEVCContext *s, unsigned int nb_cpb, ...@@ -265,7 +265,7 @@ static void decode_sublayer_hrd(HEVCContext *s, unsigned int nb_cpb,
} }
} }
static void decode_hrd(HEVCContext *s, int common_inf_present, static int decode_hrd(HEVCContext *s, int common_inf_present,
int max_sublayers) int max_sublayers)
{ {
GetBitContext *gb = &s->HEVClc->gb; GetBitContext *gb = &s->HEVClc->gb;
...@@ -312,14 +312,20 @@ static void decode_hrd(HEVCContext *s, int common_inf_present, ...@@ -312,14 +312,20 @@ static void decode_hrd(HEVCContext *s, int common_inf_present,
else else
low_delay = get_bits1(gb); low_delay = get_bits1(gb);
if (!low_delay) if (!low_delay) {
nb_cpb = get_ue_golomb_long(gb) + 1; nb_cpb = get_ue_golomb_long(gb) + 1;
if (nb_cpb < 1 || nb_cpb > 32) {
av_log(s->avctx, AV_LOG_ERROR, "nb_cpb %d invalid\n", nb_cpb);
return AVERROR_INVALIDDATA;
}
}
if (nal_params_present) if (nal_params_present)
decode_sublayer_hrd(s, nb_cpb, subpic_params_present); decode_sublayer_hrd(s, nb_cpb, subpic_params_present);
if (vcl_params_present) if (vcl_params_present)
decode_sublayer_hrd(s, nb_cpb, subpic_params_present); decode_sublayer_hrd(s, nb_cpb, subpic_params_present);
} }
return 0;
} }
int ff_hevc_decode_nal_vps(HEVCContext *s) int ff_hevc_decode_nal_vps(HEVCContext *s)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment