Merge pull request #1767 from kevinbackhouse/fix-issue-1763
Fix null iterator deref in printCsLensTypeByMetadata
This commit is contained in:
commit
9284b58bfc
@ -2750,6 +2750,7 @@ namespace Exiv2 {
|
||||
if (pos == metadata->end() || pos->value().count() < 3 || pos->value().typeId() != unsignedShort ||
|
||||
pos->value().toFloat(2) == 0.0F) {
|
||||
os << "Unknown Lens (" << lensType << ")";
|
||||
return os;
|
||||
}
|
||||
|
||||
int const exifFlMin = static_cast<int>(static_cast<float>(pos->value().toLong(1)) / pos->value().toFloat(2));
|
||||
@ -2759,6 +2760,7 @@ namespace Exiv2 {
|
||||
pos = metadata->findKey(aperKey);
|
||||
if (pos == metadata->end() || pos->value().count() != 1 || pos->value().typeId() != unsignedShort) {
|
||||
os << "Unknown Lens (" << lensType << ")";
|
||||
return os;
|
||||
}
|
||||
|
||||
auto exifAperMax = fnumber(canonEv(static_cast<int16_t>(pos->value().toLong(0))));
|
||||
|
||||
BIN
test/data/issue_1763_poc.exv
Executable file
BIN
test/data/issue_1763_poc.exv
Executable file
Binary file not shown.
20
tests/bugfixes/github/test_issue_1763.py
Normal file
20
tests/bugfixes/github/test_issue_1763.py
Normal file
@ -0,0 +1,20 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from system_tests import CaseMeta, path
|
||||
|
||||
class CanonPrintCsLensTypeByMetadataNullIteratorDeref(metaclass=CaseMeta):
|
||||
"""
|
||||
Regression test for the bug described in:
|
||||
https://github.com/Exiv2/exiv2/issues/1763
|
||||
"""
|
||||
url = "https://github.com/Exiv2/exiv2/issues/1763"
|
||||
|
||||
filename = path("$data_path/issue_1763_poc.exv")
|
||||
commands = ["$exiv2 -Pt $filename"]
|
||||
|
||||
stderr = [""]
|
||||
retval = [0]
|
||||
|
||||
def compare_stdout(self, i, command, got_stdout, expected_stdout):
|
||||
# Check that it printed "Bad value" for the date.
|
||||
self.assertIn("Unknown Lens (254)", got_stdout)
|
||||
Loading…
Reference in New Issue
Block a user