diff --git a/libavcodec/diracdec.c b/libavcodec/diracdec.c index 23d12ed3f0..1ca17094bc 100644 --- a/libavcodec/diracdec.c +++ b/libavcodec/diracdec.c @@ -957,6 +957,10 @@ static int dirac_unpack_prediction_parameters(DiracContext *s) s->globalmc[ref].perspective[0] = dirac_get_se_golomb(gb); s->globalmc[ref].perspective[1] = dirac_get_se_golomb(gb); } + if (s->globalmc[ref].perspective_exp + (uint64_t)s->globalmc[ref].zrs_exp > 30) { + return AVERROR_INVALIDDATA; + } + } }