From 07d75cd0e833286ce9e301ea83229f3e283c6191 Mon Sep 17 00:00:00 2001 From: Luis Diaz Mas Date: Sun, 1 Apr 2018 19:00:34 +0200 Subject: [PATCH] Check if ExifData::findKey return valid iterators --- src/canonmn_int.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/canonmn_int.cpp b/src/canonmn_int.cpp index c72d6d35..046aca4a 100644 --- a/src/canonmn_int.cpp +++ b/src/canonmn_int.cpp @@ -1770,9 +1770,13 @@ namespace Exiv2 { { try { // 1140 - if( metadata->findKey(ExifKey("Exif.Image.Model" ))->value().toString() == "Canon EOS 30D" - && metadata->findKey(ExifKey("Exif.CanonCs.Lens" ))->value().toString() == "24 24 1" - && metadata->findKey(ExifKey("Exif.CanonCs.MaxAperture"))->value().toString() == "95" // F2.8 + const ExifData::const_iterator itModel = metadata->findKey(ExifKey("Exif.Image.Model")); + const ExifData::const_iterator itLens = metadata->findKey(ExifKey("Exif.CanonCs.Lens")); + const ExifData::const_iterator itApert = metadata->findKey(ExifKey("Exif.CanonCs.MaxAperture")); + + if( itModel != metadata->end() && itModel->value().toString() == "Canon EOS 30D" + && itLens != metadata->end() && itLens->value().toString() == "24 24 1" + && itApert != metadata->end() && itApert->value().toString() == "95" // F2.8 ){ return os << "Canon EF-S 24mm f/2.8 STM" ; }