Blame SOURCES/exiv2-CVE-2017-11683.patch

340e69
From 1f1715c086d8dcdf5165b19164af9aee7aa12e98 Mon Sep 17 00:00:00 2001
340e69
From: =?UTF-8?q?Dan=20=C4=8Cerm=C3=A1k?= <dan.cermak@cgc-instruments.com>
340e69
Date: Fri, 6 Oct 2017 00:37:43 +0200
340e69
Subject: =?UTF-8?q?Use=20nullptr=20check=20instead=20of=20assertion,=20by?=
340e69
 =?UTF-8?q?=20Rapha=C3=ABl=20Hertzog?=
340e69
MIME-Version: 1.0
340e69
Content-Type: text/plain; charset=UTF-8
340e69
Content-Transfer-Encoding: 8bit
340e69
340e69
Source:
340e69
https://github.com/Exiv2/exiv2/issues/57#issuecomment-333086302
340e69
340e69
tc can be a null pointer when the TIFF tag is unknown (the factory
340e69
then returns an auto_ptr(0)) => as this can happen for corrupted
340e69
files, an explicit check should be used because an assertion can be
340e69
turned of in release mode (with NDEBUG defined)
340e69
340e69
This also fixes #57
340e69
340e69
diff --git a/src/tiffvisitor.cpp b/src/tiffvisitor.cpp
340e69
index 74f8d078..4ab733d4 100644
340e69
--- a/src/tiffvisitor.cpp
340e69
+++ b/src/tiffvisitor.cpp
340e69
@@ -1294,11 +1294,12 @@ namespace Exiv2 {
340e69
             }
340e69
             uint16_t tag = getUShort(p, byteOrder());
340e69
             TiffComponent::AutoPtr tc = TiffCreator::create(tag, object->group());
340e69
-            // The assertion typically fails if a component is not configured in
340e69
-            // the TIFF structure table
340e69
-            assert(tc.get());
340e69
-            tc->setStart(p);
340e69
-            object->addChild(tc);
340e69
+            if (tc.get()) {
340e69
+                tc->setStart(p);
340e69
+                object->addChild(tc);
340e69
+            } else {
340e69
+               EXV_WARNING << "Unable to handle tag " << tag << ".\n";
340e69
+            }
340e69
             p += 12;
340e69
         }
340e69