Merge pull request #1918 from rabauke/my_fix_01

fix out of range access, minor performance improvement
main
Kevin Backhouse 4 years ago committed by GitHub
commit e2f3d6d2d7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -3265,8 +3265,8 @@ namespace Exiv2 {
}
std::string stringValue = value.toString();
if (stringValue.at(19) == 'Z') {
stringValue = stringValue.substr(0, 19);
if (stringValue.size() == 20 && stringValue.at(19) == 'Z') {
stringValue.pop_back();
}
std::replace(stringValue.begin(), stringValue.end(), 'T', ' ');
std::replace(stringValue.begin(), stringValue.end(), '-', ':');

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

@ -0,0 +1,17 @@
# -*- coding: utf-8 -*-
from system_tests import CaseMeta, path, check_no_ASAN_UBSAN_errors
class PrintXmpDateOutOfBoundsIndex19(metaclass=CaseMeta):
"""
Regression test for the bug described in:
https://github.com/Exiv2/exiv2/issues/1918
"""
url = "https://github.com/Exiv2/exiv2/issues/1918"
filename = path("$data_path/issue_1918_poc.jpg")
commands = ["$exiv2 -px $filename"]
stderr = [""]
retval = [0]
compare_stdout = check_no_ASAN_UBSAN_errors
Loading…
Cancel
Save