From 9e160a453b3bd3819b2f6d0e615abcb79114a9a0 Mon Sep 17 00:00:00 2001 From: Kevin Backhouse Date: Thu, 5 Aug 2021 22:31:41 +0100 Subject: [PATCH] Replace assertion with an error message. --- src/tiffcomposite_int.cpp | 6 +++++- test/data/issue_1847_poc.jpg | Bin 0 -> 32667 bytes tests/bugfixes/github/test_issue_1847.py | 17 +++++++++++++++++ 3 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 test/data/issue_1847_poc.jpg create mode 100644 tests/bugfixes/github/test_issue_1847.py diff --git a/src/tiffcomposite_int.cpp b/src/tiffcomposite_int.cpp index 6da7a964..68fa44d1 100644 --- a/src/tiffcomposite_int.cpp +++ b/src/tiffcomposite_int.cpp @@ -1540,7 +1540,11 @@ namespace Exiv2 { for (auto&& component : components_) { if (component->tag() == 0x014a) { // Hack: delay writing of sub-IFD image data to get the order correct - assert(pSubIfd == 0); +#ifndef SUPPRESS_WARNINGS + if (pSubIfd != 0) { + EXV_ERROR << "Multiple sub-IFD image data tags found\n"; + } +#endif pSubIfd = component; continue; } diff --git a/test/data/issue_1847_poc.jpg b/test/data/issue_1847_poc.jpg new file mode 100644 index 0000000000000000000000000000000000000000..08efb84d8df7517e62cbb0bac0667ceb1f2e3394 GIT binary patch literal 32667 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