Check if ExifData::findKey return valid iterators

This commit is contained in:
Luis Diaz Mas 2018-04-01 19:00:34 +02:00 committed by Luis Díaz Más
parent ffab622633
commit 07d75cd0e8

View File

@ -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" ;
}