From 771ead87321ae6e39e5c9f6f0855c58cde6648f1 Mon Sep 17 00:00:00 2001 From: Kevin Backhouse Date: Wed, 26 Oct 2022 22:07:11 +0100 Subject: [PATCH] Credit to OSS-Fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=52731 Stop looping when eof is hit. --- src/quicktimevideo.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/quicktimevideo.cpp b/src/quicktimevideo.cpp index 011b3c29..b44b3683 100644 --- a/src/quicktimevideo.cpp +++ b/src/quicktimevideo.cpp @@ -1221,12 +1221,13 @@ void QuickTimeVideo::multipleEntriesDecoder() { DataBuf buf(4 + 1); io_->readOrThrow(buf.data(), 4); io_->readOrThrow(buf.data(), 4); - size_t noOfEntries; + uint32_t noOfEntries; noOfEntries = buf.read_uint32(0, bigEndian); - for (unsigned long i = 1; i <= noOfEntries; i++) + for (uint32_t i = 0; i < noOfEntries && continueTraversing_; i++) { decodeBlock(); + } } // QuickTimeVideo::multipleEntriesDecoder void QuickTimeVideo::videoHeaderDecoder(size_t size) {