import system_tests
class BigTiffImageRecursionStackExhaustion(
metaclass=system_tests.CaseMeta):
"""
Regression test for the bug described in:
https://github.com/Exiv2/exiv2/issues/712
A malicious input file can cause BigTiffImage::printIFD() to
recurse arbitrarily deep, causing a crash due to stack exhaustion.
The bug only existed in the -pR mode, which is now only enabled
in debug builds.
"""
url = "https://github.com/Exiv2/exiv2/issues/790"
filename = system_tests.path(
"$data_path/issue_712_poc.tif"
)
commands = ["$exiv2 -b -u -k pr $filename"]
stdout = ["File name : " + filename + """
File size : 3720 Bytes
MIME type :
Image size : 0 x 0
"""
]
stderr = [filename + """: No Exif data found in the file
"""]
retval = [253]