- int delta = get_se_golomb(gb);
- s->sh.chroma_log2_weight_denom = av_clip_uintp2(s->sh.luma_log2_weight_denom + delta, 3);
+ int64_t chroma_log2_weight_denom = luma_log2_weight_denom + (int64_t)get_se_golomb(gb);
+ if (chroma_log2_weight_denom < 0 || chroma_log2_weight_denom > 7) {
+ av_log(s->avctx, AV_LOG_ERROR, "chroma_log2_weight_denom %"PRId64" is invalid\n", chroma_log2_weight_denom);
+ return AVERROR_INVALIDDATA;
+ }
+ s->sh.chroma_log2_weight_denom = chroma_log2_weight_denom;