Document why MJPEG databuf size cannot overflow

Change-Id: I584afd17cbb1ecef5d70a9531b7a6cfb2c0441e3
This commit is contained in:
Maximilian Hils 2026-07-17 16:12:44 +00:00 committed by Max Hils
parent 5d03bf9bab
commit 94d80ce434

View File

@ -140,6 +140,10 @@ LIBYUV_BOOL MJpegDecoder::LoadFrame(const uint8_t* src, size_t src_len) {
// the next scanline) and will be overwritten when jpeglib writes out that
// next scanline.
int databuf_stride = GetComponentStride(i);
// Cannot overflow:
// - JPEG width is stored as an u16, so `databuf_stride` (width rounded up to
// DCTSIZE) is at most slightly larger than UINT16_MAX.
// - Sampling factor is stored in 4 bits, so scanlines_size is <16.
int databuf_size = scanlines_size * databuf_stride;
if (databuf_strides_[i] != databuf_stride) {
if (databuf_[i]) {