os->pflags |= AV_PKT_FLAG_KEY;
lb = ((*p & 2) << 1) | ((*p >> 6) & 3);
+ if (os->psize < lb + 1)
+ return AVERROR_INVALIDDATA;
+
os->pstart += lb + 1;
os->psize -= lb + 1;
while (lb--)
- os->pduration += p[lb+1] << (lb*8);
+ os->pduration += (uint64_t)p[lb+1] << (lb*8);
return 0;
}