Merge pull request #2394 from kevinbackhouse/fix-issue-2393

stop looping when eof is hit
This commit is contained in:
Kevin Backhouse 2022-10-30 14:24:32 +00:00 committed by GitHub
commit d599d36f8b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 20 additions and 2 deletions

View File

@ -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) {

Binary file not shown.

View File

@ -0,0 +1,16 @@
# -*- coding: utf-8 -*-
from system_tests import CaseMeta, check_no_ASAN_UBSAN_errors
class issue_2393_QuickTimeVideo_multipleEntriesDecoder_long_running(metaclass=CaseMeta):
url = "https://github.com/Exiv2/exiv2/issues/2393"
filename = "$data_path/issue_2393_poc.mp4"
commands = ["$exiv2 $filename"]
retval = [253]
stderr = ["""$filename: No Exif data found in the file
"""]
stdout = ["""File name : $filename
File size : 319 Bytes
MIME type : video/quicktime
Image size : 0 x 0
"""]

View File

@ -64,6 +64,7 @@ def get_valid_files(data_dir):
"issue_2376_poc.mp4",
"issue_2377_poc.mp4",
"issue_2383_poc.mp4",
"issue_2393_poc.mp4",
"2018-01-09-exiv2-crash-001.tiff",
"cve_2017_1000126_stack-oob-read.webp",
"exiv2-bug1247.jpg",