diff --git a/libavcodec/hevcdec.c b/libavcodec/hevcdec.c index 23a89345a8..32703f090a 100644 --- a/libavcodec/hevcdec.c +++ b/libavcodec/hevcdec.c @@ -248,6 +248,8 @@ static int decode_lt_rps(HEVCContext *s, LongTermRPS *rps, GetBitContext *gb) nb_sps = get_ue_golomb_long(gb); nb_sh = get_ue_golomb_long(gb); + if (nb_sps > sps->num_long_term_ref_pics_sps) + return AVERROR_INVALIDDATA; if (nb_sh + (uint64_t)nb_sps > FF_ARRAY_ELEMS(rps->poc)) return AVERROR_INVALIDDATA;