/* get stream length in dwords */
bytestream2_init(&gb, buf, buf_size);
len = bytestream2_get_be32(&gb);
- skip = len * 4 + 4;
if (len == 0)
return 4;
- if (len >= INT_MAX / 4 - 1 || len < 0 || skip > buf_size) {
+ if (len >= INT_MAX / 4 - 1 || len < 0 || len * 4 + 4 > buf_size) {
av_log(ctx->avctx, AV_LOG_ERROR, "Error, invalid stream size.\n");
return AVERROR_INVALIDDATA;
}
+ skip = len * 4 + 4;
toks = bytestream2_get_be32(&gb);
if (toks & 1) {