state = 120 * (escape + flag) + state - (120 * state >> 8);
flag = 0;
- if (state * 4 > 0xFF || i >= size)
+ if (state * 4ULL > 0xFF || i >= size)
continue;
nbits = ((state + 8) >> 5) + (state ? ff_clz(state) : 32) - 24;
cnt1 = get_bits(b, nbits);
} else {
pfx = 14 + ((((uint64_t)(value - 14)) >> 32) & (value - 14));
+ if (pfx < 1 || pfx > 25)
+ return AVERROR_INVALIDDATA;
cnt1 *= (1 << pfx) - 1;
shbits = show_bits(b, pfx);
if (shbits <= 1) {
j = 0;
dst += stride;
}
- state += (int64_t)d * yflag - (d * state >> 8);
+ state += (int64_t)d * (uint64_t)yflag - ((int64_t)(d * (uint64_t)state) >> 8);
flag = 0;
- if (state * 4 > 0xFF || i >= size)
+ if (state * 4ULL > 0xFF || i >= size)
continue;
pfx = ((state + 8) >> 5) + (state ? ff_clz(state): 32) - 24;