diff -Nru exiv2-0.25/debian/changelog exiv2-0.25/debian/changelog --- exiv2-0.25/debian/changelog 2018-08-17 13:07:05.000000000 +0000 +++ exiv2-0.25/debian/changelog 2019-03-07 18:20:23.000000000 +0000 @@ -1,31 +1,40 @@ -exiv2 (0.25-3.1ubuntu0.18.04.1pmjdebruijn1~bionic) bionic; urgency=low +exiv2 (0.25-3.1ubuntu0.18.04.2pmjdebruijn1~bionic) bionic; urgency=low - * Applied upstream changesets (from svn): - r3881 r3882 r3883 r3886 r3887 r3893 r3923 r3927 r3939 r3945 - r3953 r3954 r3971 r3976 r3993 r4006 r4012 r4013 r4014 r4016 - r4018 r4019 r4054 r4133 r4134 r4135 r4138 r4148 r4149 r4150 - r4151 r4152 r4153 r4154 r4155 r4167 r4181 r4182 r4190 r4191 - r4194 r4205 r4206 r4207 r4210 r4211 r4212 r4213 r4214 r4215 - r4216 r4221 r4222 r4223 r4225 r4226 r4227 r4236 r4252 r4256 - r4257 r4269 r4278 r4279 r4281 r4297 r4298 r4300 r4306 r4307 - r4310 r4334 r4343 r4353 r4354 r4356 r4374 r4379 r4380 r4381 - r4382 r4383 r4387 r4388 r4389 r4390 r4391 r4392 r4393 r4394 - r4395 r4396 r4480 r4504 r4510 r4511 r4525 r4550 r4551 r4582 - r4665 r4681 r4687 r4688 r4690 r4697 r4698 r4703 r4709 r4746 - r4747 - * Applied upstream commits (from git): - 20170920_97d7a04ea86d86b82e028b63bbe8aacef7b63a4f - 20171007_8a586c74bbe3fbca64e86e42a42282c73f427607 - 20171104_d48abab718585106e9851983b0dc49b8cc433c55 - 20180106_7d42da94d0f1ff7aed85e973a7aeea846034f3de - 20180209_215227024d004d21c990e6831eb3a2cf4e069d41 - 20180209_34a3be025e818c57afa45c4ddc45830ab958e179 - 20180209_fc8b45dd120d1664c7df34442da29bd1d8229e34 - 20180506_d22fff4834d74feca2469129e883b7c50106b6a6 - 20180519_4e55af8691d4f8873c7179b33ee5e25e20335dab - 20180702_b35903e4c83556c58d546d04dc73b4730de76415 + * Lens recognition patch set. - -- Pascal de Bruijn Fri, 17 Aug 2018 15:07:05 +0200 + -- Pascal de Bruijn Thu, 07 Mar 2019 19:20:23 +0100 + +exiv2 (0.25-3.1ubuntu0.18.04.2) bionic-security; urgency=medium + + * SECURITY UPDATE: Denial of service + - debian/patches/CVE-2017-11591.patch: fix in + include/exiv2/value.hpp. + - CVE-2017-11591 + * SECURITY UPDATE: Remote denial of service + - debian/patches/CVE-2017-11683.patch: fix in + src/tiffvisitor.cpp. + - CVE-2017-11683 + * SECURITY UPDATE: Denial of service + - debian/patches/CVE-2017-14859_14862_14864.patch: fix in + src/error.cpp, src/tiffvisitor.cpp. + - CVE-2017-14859 + - CVE-2017-14862 + - CVE-2017-14864 + * SECURITY UPDATE: Denial of service + - debian/patches/CVE-2017-17669.patch: fix in + src/pngchunk.cpp. + - CVE-2017-17669 + * SECURITY UPDATE: Denial of service + - debian/patches/CVE-2018-17581.patch: fix in + src/crwimage.cpp. + - CVE-2018-17581 + * SECURITY UPDATE: Denial of service + - debian/patches/CVE-16336*.patch: fix in + src/pngchunk.cpp. + - CVE-2018-16336 + * Minor fix related to CVE-2018-10958_10999 in src/pngchunk.cpp. + + -- Leonidas S. Barbosa Wed, 09 Jan 2019 09:23:30 -0300 exiv2 (0.25-3.1ubuntu0.18.04.1) bionic-security; urgency=medium diff -Nru exiv2-0.25/debian/patches/changeset_r4155.diff exiv2-0.25/debian/patches/changeset_r4155.diff --- exiv2-0.25/debian/patches/changeset_r4155.diff 2018-08-17 13:01:06.000000000 +0000 +++ exiv2-0.25/debian/patches/changeset_r4155.diff 1970-01-01 00:00:00.000000000 +0000 @@ -1,49 +0,0 @@ -Index: trunk/src/tiffvisitor.cpp -=================================================================== ---- trunk/src/tiffvisitor.cpp (revision 4154) -+++ trunk/src/tiffvisitor.cpp (revision 4155) -@@ -1489,12 +1489,17 @@ - return; - } - p += 4; -+ uint32_t isize= 0; // size of Exif.Sony1.PreviewImage - uint32_t size = typeSize * count; - int32_t offset = getLong(p, byteOrder()); - byte* pData = p; - if ( size > 4 - && ( baseOffset() + offset >= size_ - || static_cast(baseOffset()) + offset <= 0)) { -+ // #1143 -+ if ( object->tag() == 0x2001 && std::string(groupName(object->group())) == "Sony1" ) { -+ isize=size; -+ } else { - #ifndef SUPPRESS_WARNINGS - EXV_ERROR << "Offset of directory " << groupName(object->group()) - << ", entry 0x" << std::setw(4) -@@ -1504,6 +1509,7 @@ - << std::setfill('0') << std::hex << offset - << "; truncating the entry\n"; - #endif -+ } - size = 0; - } - if (size > 4) { -@@ -1528,7 +1534,17 @@ - } - Value::AutoPtr v = Value::create(typeId); - assert(v.get()); -- v->read(pData, size, byteOrder()); -+ if ( !isize ) { -+ v->read(pData, size, byteOrder()); -+ } else { -+ // #1143 Write a "hollow" buffer for the preview image -+ // Sadly: we don't know the exact location of the image in the source (it's near offset) -+ // And neither TiffReader nor TiffEntryBase have access to the BasicIo object being processed -+ byte* buffer = (byte*) ::malloc(isize); -+ ::memset(buffer,isize,0); -+ v->read(buffer,isize, byteOrder()); -+ ::free(buffer); -+ } - - object->setValue(v); - object->setData(pData, size); diff -Nru exiv2-0.25/debian/patches/changeset_r4210.diff exiv2-0.25/debian/patches/changeset_r4210.diff --- exiv2-0.25/debian/patches/changeset_r4210.diff 2018-08-17 13:01:06.000000000 +0000 +++ exiv2-0.25/debian/patches/changeset_r4210.diff 1970-01-01 00:00:00.000000000 +0000 @@ -1,13 +0,0 @@ -Index: trunk/src/crwimage.cpp -=================================================================== ---- trunk/src/crwimage.cpp (revision 4209) -+++ trunk/src/crwimage.cpp (revision 4210) -@@ -448,7 +448,7 @@ - ByteOrder byteOrder) - { - uint32_t o = getULong(pData + size - 4, byteOrder); -- if (o + 2 > size) throw Error(33); -+ if (size < 2 || o > size-2) throw Error(33); - uint16_t count = getUShort(pData + o, byteOrder); - #ifdef DEBUG - std::cout << "Directory at offset " << std::dec << o diff -Nru exiv2-0.25/debian/patches/changeset_r4269.diff exiv2-0.25/debian/patches/changeset_r4269.diff --- exiv2-0.25/debian/patches/changeset_r4269.diff 2018-08-17 13:01:06.000000000 +0000 +++ exiv2-0.25/debian/patches/changeset_r4269.diff 1970-01-01 00:00:00.000000000 +0000 @@ -1,22 +0,0 @@ -Index: trunk/src/tiffvisitor.cpp -=================================================================== ---- trunk/src/tiffvisitor.cpp (revision 4268) -+++ trunk/src/tiffvisitor.cpp (revision 4269) -@@ -1344,7 +1344,7 @@ - uint32_t maxi = 9; - if (object->group() == ifd1Id) maxi = 1; - for (uint32_t i = 0; i < object->count(); ++i) { -- int32_t offset = getLong(object->pData() + 4*i, byteOrder()); -+ uint32_t offset = getLong(object->pData() + 4*i, byteOrder()); - if ( baseOffset() + offset > size_ - || static_cast(baseOffset()) + offset < 0) { - #ifndef SUPPRESS_WARNINGS -@@ -1491,7 +1491,7 @@ - p += 4; - uint32_t isize= 0; // size of Exif.Sony1.PreviewImage - uint32_t size = typeSize * count; -- int32_t offset = getLong(p, byteOrder()); -+ uint32_t offset = getLong(p, byteOrder()); - byte* pData = p; - if ( size > 4 - && ( baseOffset() + offset >= size_ diff -Nru exiv2-0.25/debian/patches/CVE-2017-11591.patch exiv2-0.25/debian/patches/CVE-2017-11591.patch --- exiv2-0.25/debian/patches/CVE-2017-11591.patch 1970-01-01 00:00:00.000000000 +0000 +++ exiv2-0.25/debian/patches/CVE-2017-11591.patch 2019-01-09 12:22:05.000000000 +0000 @@ -0,0 +1,27 @@ +Index: exiv2-0.25/include/exiv2/value.hpp +=================================================================== +--- exiv2-0.25.orig/include/exiv2/value.hpp ++++ exiv2-0.25/include/exiv2/value.hpp +@@ -1657,11 +1657,12 @@ namespace Exiv2 { + ok_ = true; + return static_cast(value_[n]); + } ++#define LARGE_INT 1000000 + // Specialization for rational + template<> + inline long ValueType::toLong(long n) const + { +- ok_ = (value_[n].second != 0); ++ ok_ = (value_[n].second != 0 && -LARGE_INT < value_[n].first && value_[n].first < LARGE_INT); + if (!ok_) return 0; + return value_[n].first / value_[n].second; + } +@@ -1669,7 +1670,7 @@ namespace Exiv2 { + template<> + inline long ValueType::toLong(long n) const + { +- ok_ = (value_[n].second != 0); ++ ok_ = (value_[n].second != 0 && value_[n].first < LARGE_INT); + if (!ok_) return 0; + return value_[n].first / value_[n].second; + } diff -Nru exiv2-0.25/debian/patches/CVE-2017-11683.patch exiv2-0.25/debian/patches/CVE-2017-11683.patch --- exiv2-0.25/debian/patches/CVE-2017-11683.patch 1970-01-01 00:00:00.000000000 +0000 +++ exiv2-0.25/debian/patches/CVE-2017-11683.patch 2019-01-09 12:22:16.000000000 +0000 @@ -0,0 +1,42 @@ +From 1f1715c086d8dcdf5165b19164af9aee7aa12e98 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Dan=20=C4=8Cerm=C3=A1k?= +Date: Fri, 6 Oct 2017 00:37:43 +0200 +Subject: [PATCH] =?UTF-8?q?Use=20nullptr=20check=20instead=20of=20assertio?= + =?UTF-8?q?n,=20by=20Rapha=C3=ABl=20Hertzog?= +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Source: +https://github.com/Exiv2/exiv2/issues/57#issuecomment-333086302 + +tc can be a null pointer when the TIFF tag is unknown (the factory +then returns an auto_ptr(0)) => as this can happen for corrupted +files, an explicit check should be used because an assertion can be +turned of in release mode (with NDEBUG defined) + +This also fixes #57 +--- + src/tiffvisitor.cpp | 11 ++++++----- + 1 file changed, 6 insertions(+), 5 deletions(-) + +--- a/src/tiffvisitor.cpp ++++ b/src/tiffvisitor.cpp +@@ -1290,11 +1290,12 @@ namespace Exiv2 { + } + uint16_t tag = getUShort(p, byteOrder()); + TiffComponent::AutoPtr tc = TiffCreator::create(tag, object->group()); +- // The assertion typically fails if a component is not configured in +- // the TIFF structure table +- assert(tc.get()); +- tc->setStart(p); +- object->addChild(tc); ++ if (tc.get()) { ++ tc->setStart(p); ++ object->addChild(tc); ++ } else { ++ EXV_WARNING << "Unable to handle tag " << tag << ".\n"; ++ } + p += 12; + } + diff -Nru exiv2-0.25/debian/patches/CVE-2017-14859_14862_14864.patch exiv2-0.25/debian/patches/CVE-2017-14859_14862_14864.patch --- exiv2-0.25/debian/patches/CVE-2017-14859_14862_14864.patch 1970-01-01 00:00:00.000000000 +0000 +++ exiv2-0.25/debian/patches/CVE-2017-14859_14862_14864.patch 2019-01-09 12:22:25.000000000 +0000 @@ -0,0 +1,74 @@ +Backported of: + +Description: Fix CVE-2017-14864, CVE-2017-14862 and CVE-2017-14859 +Origin: backport, https://github.com/Exiv2/exiv2/pull/110 +Last-Update: 2017-10-25 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +Index: exiv2-0.25/src/error.cpp +=================================================================== +--- exiv2-0.25.orig/src/error.cpp ++++ exiv2-0.25/src/error.cpp +@@ -106,7 +106,9 @@ namespace { + { 50, N_("Multiple TIFF array element tags %1 in one directory") }, // %1=tag number + { 51, N_("TIFF array element tag %1 has wrong type") }, // %1=tag number + { 52, N_("%1 has invalid XMP value type `%2'") }, // %1=key, %2=value type +- { 58, N_("corrupted image metadata") } ++ { 57, N_("invalid memory allocation request") }, ++ { 58, N_("corrupted image metadata") }, ++ { 59, N_("Arithmetic operation overflow") }, + }; + + } +Index: exiv2-0.25/src/tiffvisitor.cpp +=================================================================== +--- exiv2-0.25.orig/src/tiffvisitor.cpp ++++ exiv2-0.25/src/tiffvisitor.cpp +@@ -47,6 +47,7 @@ EXIV2_RCSID("@(#) $Id: tiffvisitor.cpp 3 + #include + #include + #include ++#include + + // ***************************************************************************** + namespace { +@@ -1490,6 +1491,9 @@ namespace Exiv2 { + return; + } + p += 4; ++ if (count > std::numeric_limits::max() / typeSize) { ++ throw Error(59); ++ } + uint32_t size = typeSize * count; + int32_t offset = getLong(p, byteOrder()); + byte* pData = p; +@@ -1508,7 +1512,18 @@ namespace Exiv2 { + size = 0; + } + if (size > 4) { ++ // setting pData to pData_ + baseOffset() + offset can result in pData pointing to invalid memory, ++ // as offset can be arbitrarily large ++ if ((static_cast(baseOffset()) > std::numeric_limits::max() - static_cast(offset)) ++ || (static_cast(baseOffset() + offset) > std::numeric_limits::max() - reinterpret_cast(pData_))) ++ { ++ throw Error(59); ++ } ++ if (pData_ + static_cast(baseOffset()) + static_cast(offset) > pLast_) { ++ throw Error(58); ++ } + pData = const_cast(pData_) + baseOffset() + offset; ++ // check for size being invalid + if (size > static_cast(pLast_ - pData)) { + #ifndef SUPPRESS_WARNINGS + EXV_ERROR << "Upper boundary of data for " +@@ -1528,7 +1543,9 @@ namespace Exiv2 { + } + } + Value::AutoPtr v = Value::create(typeId); +- assert(v.get()); ++ if (!v.get()) { ++ throw Error(58); ++ } + v->read(pData, size, byteOrder()); + + object->setValue(v); diff -Nru exiv2-0.25/debian/patches/CVE-2017-17669.patch exiv2-0.25/debian/patches/CVE-2017-17669.patch --- exiv2-0.25/debian/patches/CVE-2017-17669.patch 1970-01-01 00:00:00.000000000 +0000 +++ exiv2-0.25/debian/patches/CVE-2017-17669.patch 2019-01-09 12:22:35.000000000 +0000 @@ -0,0 +1,37 @@ +From 4429b962e10e9f2e905e20b183ba008c616cd366 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Dan=20=C4=8Cerm=C3=A1k?= +Date: Mon, 22 Jan 2018 23:56:08 +0100 +Subject: [PATCH 1/3] Fix out of bounds read in src/pngchunk_int.cpp by + @brianmay + +- consider that key is advanced by 8 bytes if stripHeader is true + => length is reduced by same amount + Fixed by adding offset to the check in the loop +- Rewrote loop so that keysize is checked before the next + iteration (preventing an out of bounds read) +Index: exiv2-0.25/src/pngchunk.cpp +=================================================================== +--- exiv2-0.25.orig/src/pngchunk.cpp ++++ exiv2-0.25/src/pngchunk.cpp +@@ -103,15 +103,17 @@ namespace Exiv2 { + { + // From a tEXt, zTXt, or iTXt chunk, + // we get the key, it's a null terminated string at the chunk start +- if (data.size_ <= (stripHeader ? 8 : 0)) throw Error(14); +- const byte *key = data.pData_ + (stripHeader ? 8 : 0); ++ const int offset = stripHeader ? 8 : 0; ++ if (data.size_ <= offset) throw Error(14); ++ const byte *key = data.pData_ + offset; + + // Find null string at end of key. + int keysize=0; +- for ( ; key[keysize] != 0 ; keysize++) ++ while (key[keysize] != 0) + { ++ keysize++; + // look if keysize is valid. +- if (keysize >= data.size_) ++ if (keysize+offset >= data.size_) + throw Error(14); + } + diff -Nru exiv2-0.25/debian/patches/CVE-2018-10958_10999-minor-fix.patch exiv2-0.25/debian/patches/CVE-2018-10958_10999-minor-fix.patch --- exiv2-0.25/debian/patches/CVE-2018-10958_10999-minor-fix.patch 1970-01-01 00:00:00.000000000 +0000 +++ exiv2-0.25/debian/patches/CVE-2018-10958_10999-minor-fix.patch 2019-01-09 12:23:19.000000000 +0000 @@ -0,0 +1,21 @@ +Backported of: + +From c0a879aea41348481d5b286e34a85f4744a7446a Mon Sep 17 00:00:00 2001 +From: Luis Diaz Mas +Date: Wed, 23 May 2018 11:10:38 +0200 +Subject: [PATCH] Fix call to std::count, so that we count until the end of the + array + +Index: exiv2-0.25/src/pngchunk.cpp +=================================================================== +--- exiv2-0.25.orig/src/pngchunk.cpp ++++ exiv2-0.25/src/pngchunk.cpp +@@ -173,7 +173,7 @@ namespace Exiv2 { + else if(type == iTXt_Chunk) + { + if (data.size_ < Safe::add(keysize, 3)) throw Error(58); +- const int nullSeparators = std::count(&data.pData_[keysize+3], &data.pData_[data.size_-1], '\0'); ++ const int nullSeparators = std::count(&data.pData_[keysize+3], &data.pData_[data.size_], '\0'); + if (nullSeparators < 2) throw Error(58, "iTXt chunk: not enough null separators"); + + // Extract a deflate compressed or uncompressed UTF-8 text chunk diff -Nru exiv2-0.25/debian/patches/CVE-2018-16336.patch exiv2-0.25/debian/patches/CVE-2018-16336.patch --- exiv2-0.25/debian/patches/CVE-2018-16336.patch 1970-01-01 00:00:00.000000000 +0000 +++ exiv2-0.25/debian/patches/CVE-2018-16336.patch 2019-01-09 12:23:00.000000000 +0000 @@ -0,0 +1,130 @@ +Backported of: + +From 35b3e596edacd2437c2c5d3dd2b5c9502626163d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Dan=20=C4=8Cerm=C3=A1k?= +Date: Fri, 17 Aug 2018 16:41:05 +0200 +Subject: [PATCH] Add overflow & overread checks to PngChunk::parseTXTChunk() + +This function was creating a lot of new pointers and strings without +properly checking the array bounds. This commit adds several calls +to enforce(), making sure that the pointers stay within bounds. +Strings are now created using the helper function +string_from_unterminated() to prevent overreads in the constructor of +std::string. + +This fixes #400 +Index: exiv2-0.25/src/pngchunk.cpp +=================================================================== +--- exiv2-0.25.orig/src/pngchunk.cpp ++++ exiv2-0.25/src/pngchunk.cpp +@@ -40,6 +40,8 @@ EXIV2_RCSID("@(#) $Id: pngchunk.cpp 3777 + #include "iptc.hpp" + #include "image.hpp" + #include "error.hpp" ++#include "helper_functions.hpp" ++#include "safe_op.hpp" + + // + standard includes + #include +@@ -129,6 +131,8 @@ namespace Exiv2 { + + if(type == zTXt_Chunk) + { ++ if (data.size_ < Safe::add(keysize, 2)) throw Error(58); ++ + // Extract a deflate compressed Latin-1 text chunk + + // we get the compression method after the key +@@ -145,11 +149,13 @@ namespace Exiv2 { + // compressed string after the compression technique spec + const byte* compressedText = data.pData_ + keysize + 2; + unsigned int compressedTextSize = data.size_ - keysize - 2; ++ if (compressedTextSize >= data.size_) throw Error(58); + + zlibUncompress(compressedText, compressedTextSize, arr); + } + else if(type == tEXt_Chunk) + { ++ if (data.size_ < Safe::add(keysize, 1)) throw Error(58); + // Extract a non-compressed Latin-1 text chunk + + // the text comes after the key, but isn't null terminated +@@ -160,6 +166,7 @@ namespace Exiv2 { + } + else if(type == iTXt_Chunk) + { ++ if (data.size_ < Safe::add(keysize, 3)) throw Error(58); + const int nullSeparators = std::count(&data.pData_[keysize+3], &data.pData_[data.size_-1], '\0'); + if (nullSeparators < 2) throw Error(58, "iTXt chunk: not enough null separators"); + +@@ -180,41 +187,43 @@ namespace Exiv2 { + } + + // language description string after the compression technique spec +- std::string languageText((const char*)(data.pData_ + keysize + 3)); +- unsigned int languageTextSize = static_cast(languageText.size()); +- // translated keyword string after the language description +- std::string translatedKeyText((const char*)(data.pData_ + keysize + 3 + languageTextSize +1)); +- unsigned int translatedKeyTextSize = static_cast(translatedKeyText.size()); ++ const size_t languageTextMaxSize = data.size_ - keysize - 3; ++ std::string languageText = ++ string_from_unterminated((const char*)(data.pData_ + Safe::add(keysize, 3)), languageTextMaxSize); ++ const unsigned int languageTextSize = static_cast(languageText.size()); + +- if ( compressionFlag == 0x00 ) +- { +- // then it's an uncompressed iTXt chunk +-#ifdef DEBUG +- std::cout << "Exiv2::PngChunk::parseTXTChunk: We found an uncompressed iTXt field\n"; +-#endif ++ if (data.size_ < Safe::add(static_cast(Safe::add(keysize, 4)), languageTextSize)) throw Error(58); ++ // translated keyword string after the language description ++ std::string translatedKeyText = ++ string_from_unterminated((const char*)(data.pData_ + keysize + 3 + languageTextSize + 1), ++ data.size_ - (keysize + 3 + languageTextSize + 1)); ++ const unsigned int translatedKeyTextSize = static_cast(translatedKeyText.size()); ++ ++ if ((compressionFlag == 0x00) || (compressionFlag == 0x01 && compressionMethod == 0x00)) { ++ if (Safe::add(static_cast(keysize + 3 + languageTextSize + 1), ++ Safe::add(translatedKeyTextSize, 1u)) > data.size_) throw Error(58); + +- // the text comes after the translated keyword, but isn't null terminated + const byte* text = data.pData_ + keysize + 3 + languageTextSize + 1 + translatedKeyTextSize + 1; +- long textsize = data.size_ - (keysize + 3 + languageTextSize + 1 + translatedKeyTextSize + 1); ++ const long textsize = data.size_ - (keysize + 3 + languageTextSize + 1 + translatedKeyTextSize + 1); + +- arr.alloc(textsize); +- arr = DataBuf(text, textsize); +- } +- else if ( compressionFlag == 0x01 && compressionMethod == 0x00 ) +- { +- // then it's a zlib compressed iTXt chunk ++ if (compressionFlag == 0x00) { ++ // then it's an uncompressed iTXt chunk + #ifdef DEBUG +- std::cout << "Exiv2::PngChunk::parseTXTChunk: We found a zlib compressed iTXt field\n"; ++ std::cout << "Exiv2::PngChunk::parseTXTChunk: We found an uncompressed iTXt field\n"; + #endif + +- // the compressed text comes after the translated keyword, but isn't null terminated +- const byte* compressedText = data.pData_ + keysize + 3 + languageTextSize + 1 + translatedKeyTextSize + 1; +- long compressedTextSize = data.size_ - (keysize + 3 + languageTextSize + 1 + translatedKeyTextSize + 1); ++ arr.alloc(textsize); ++ arr = DataBuf(text, textsize); ++ } else if (compressionFlag == 0x01 && compressionMethod == 0x00) { ++ // then it's a zlib compressed iTXt chunk ++#ifdef DEBUG ++ std::cout << "Exiv2::PngChunk::parseTXTChunk: We found a zlib compressed iTXt field\n"; ++#endif + +- zlibUncompress(compressedText, compressedTextSize, arr); +- } +- else +- { ++ // the compressed text comes after the translated keyword, but isn't null terminated ++ zlibUncompress(text, textsize, arr); ++ } ++ } else { + // then it isn't zlib compressed and we are sunk + #ifdef DEBUG + std::cerr << "Exiv2::PngChunk::parseTXTChunk: Non-standard iTXt compression method.\n"; diff -Nru exiv2-0.25/debian/patches/CVE-2018-16336-support-funcs.patch exiv2-0.25/debian/patches/CVE-2018-16336-support-funcs.patch --- exiv2-0.25/debian/patches/CVE-2018-16336-support-funcs.patch 1970-01-01 00:00:00.000000000 +0000 +++ exiv2-0.25/debian/patches/CVE-2018-16336-support-funcs.patch 2019-01-09 12:23:06.000000000 +0000 @@ -0,0 +1,26 @@ +diff --git a/src/pngchunk.cpp b/src/pngchunk.cpp +index 89b0931..fb27100 100644 +--- a/src/pngchunk.cpp ++++ b/src/pngchunk.cpp +@@ -40,7 +40,6 @@ EXIV2_RCSID("@(#) $Id: pngchunk.cpp 3777 2015-05-02 11:55:40Z ahuggel $") + #include "iptc.hpp" + #include "image.hpp" + #include "error.hpp" +-#include "helper_functions.hpp" + #include "safe_op.hpp" + + // + standard includes +@@ -55,6 +54,13 @@ EXIV2_RCSID("@(#) $Id: pngchunk.cpp 3777 2015-05-02 11:55:40Z ahuggel $") + + #include // To uncompress or compress text chunk + ++/* Added as support of CVE-2018-16336 */ ++std::string string_from_unterminated(const char* data, size_t data_length) ++{ ++ const size_t StringLength = strnlen(data, data_length); ++ ++ return std::string(data, StringLength); ++} + /* + + URLs to find informations about PNG chunks : diff -Nru exiv2-0.25/debian/patches/CVE-2018-17581.patch exiv2-0.25/debian/patches/CVE-2018-17581.patch --- exiv2-0.25/debian/patches/CVE-2018-17581.patch 1970-01-01 00:00:00.000000000 +0000 +++ exiv2-0.25/debian/patches/CVE-2018-17581.patch 2019-01-09 12:22:49.000000000 +0000 @@ -0,0 +1,30 @@ +From b3d077dcaefb6747fff8204490f33eba5a144edb Mon Sep 17 00:00:00 2001 +From: Robin Mills +Date: Sat, 13 Oct 2018 11:38:56 +0200 +Subject: [PATCH] Fix #460 by adding more checks in + CiffDirectory::readDirectory +Index: exiv2-0.25/src/crwimage.cpp +=================================================================== +--- exiv2-0.25.orig/src/crwimage.cpp ++++ exiv2-0.25/src/crwimage.cpp +@@ -447,6 +447,8 @@ namespace Exiv2 { + uint32_t size, + ByteOrder byteOrder) + { ++ if (size < 4) ++ throw Error(33); + uint32_t o = getULong(pData + size - 4, byteOrder); + if (o + 2 > size) throw Error(33); + uint16_t count = getUShort(pData + o, byteOrder); +@@ -455,8 +457,10 @@ namespace Exiv2 { + <<", " << count << " entries \n"; + #endif + o += 2; ++ if ( (o + (count * 10)) > size ) ++ throw Error(33); ++ + for (uint16_t i = 0; i < count; ++i) { +- if (o + 10 > size) throw Error(33); + uint16_t tag = getUShort(pData + o, byteOrder); + CiffComponent::AutoPtr m; + switch (CiffComponent::typeId(tag)) { diff -Nru exiv2-0.25/debian/patches/git_20171007_8a586c74bbe3fbca64e86e42a42282c73f427607.patch exiv2-0.25/debian/patches/git_20171007_8a586c74bbe3fbca64e86e42a42282c73f427607.patch --- exiv2-0.25/debian/patches/git_20171007_8a586c74bbe3fbca64e86e42a42282c73f427607.patch 2018-08-17 13:01:10.000000000 +0000 +++ exiv2-0.25/debian/patches/git_20171007_8a586c74bbe3fbca64e86e42a42282c73f427607.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,56 +0,0 @@ -From 8a586c74bbe3fbca64e86e42a42282c73f427607 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Dan=20=C4=8Cerm=C3=A1k?= -Date: Sat, 7 Oct 2017 23:08:36 +0200 -Subject: [PATCH] Fix for CVE-2017-14864, CVE-2017-14862 and CVE-2017-14859 - -The invalid memory dereference in -Exiv2::getULong()/Exiv2::StringValueBase::read()/Exiv2::DataValue::read() -is caused further up the call-stack, by -v->read(pData, size, byteOrder) in TiffReader::readTiffEntry() -passing an invalid pData pointer (pData points outside of the Tiff -file). pData can be set out of bounds in the (size > 4) branch where -baseOffset() and offset are added to pData_ without checking whether -the result is still in the file. As offset comes from an untrusted -source, an attacker can craft an arbitrarily large offset into the -file. - -This commit adds a check into the problematic branch, whether the -result of the addition would be out of bounds of the Tiff -file. Furthermore the whole operation is checked for possible -overflows. ---- - src/tiffvisitor.cpp | 13 +++++++++++++ - 1 file changed, 13 insertions(+) - -diff --git a/src/tiffvisitor.cpp b/src/tiffvisitor.cpp -index 4ab733d4..ef13542e 100644 ---- a/src/tiffvisitor.cpp -+++ b/src/tiffvisitor.cpp -@@ -47,6 +47,7 @@ EXIV2_RCSID("@(#) $Id$") - #include - #include - #include -+#include - - // ***************************************************************************** - namespace { -@@ -1517,7 +1518,19 @@ namespace Exiv2 { - size = 0; - } - if (size > 4) { -+ // setting pData to pData_ + baseOffset() + offset can result in pData pointing to invalid memory, -+ // as offset can be arbitrarily large -+ if ((static_cast(baseOffset()) > std::numeric_limits::max() - static_cast(offset)) -+ || (static_cast(baseOffset() + offset) > std::numeric_limits::max() - reinterpret_cast(pData_))) -+ { -+ throw Error(59); -+ } -+ if (pData_ + static_cast(baseOffset()) + static_cast(offset) > pLast_) { -+ throw Error(58); -+ } - pData = const_cast(pData_) + baseOffset() + offset; -+ -+ // check for size being invalid - if (size > static_cast(pLast_ - pData)) { - #ifndef SUPPRESS_WARNINGS - EXV_ERROR << "Upper boundary of data for " diff -Nru exiv2-0.25/debian/patches/git_20180209_fc8b45dd120d1664c7df34442da29bd1d8229e34.patch exiv2-0.25/debian/patches/git_20180209_fc8b45dd120d1664c7df34442da29bd1d8229e34.patch --- exiv2-0.25/debian/patches/git_20180209_fc8b45dd120d1664c7df34442da29bd1d8229e34.patch 2018-08-17 13:01:10.000000000 +0000 +++ exiv2-0.25/debian/patches/git_20180209_fc8b45dd120d1664c7df34442da29bd1d8229e34.patch 2019-03-07 18:20:23.000000000 +0000 @@ -8,7 +8,7 @@ 1 file changed, 1 insertion(+) diff --git a/src/nikonmn.cpp b/src/nikonmn.cpp -index 4cd78b45..ccc0ea22 100644 +index 4cd78b45a..ccc0ea225 100644 --- a/src/nikonmn.cpp +++ b/src/nikonmn.cpp @@ -2232,6 +2232,7 @@ fmountlens[] = { diff -Nru exiv2-0.25/debian/patches/git_201809201_66f6f0bc1743b740802d33f2e9d9f450fc9cb681.patch exiv2-0.25/debian/patches/git_201809201_66f6f0bc1743b740802d33f2e9d9f450fc9cb681.patch --- exiv2-0.25/debian/patches/git_201809201_66f6f0bc1743b740802d33f2e9d9f450fc9cb681.patch 1970-01-01 00:00:00.000000000 +0000 +++ exiv2-0.25/debian/patches/git_201809201_66f6f0bc1743b740802d33f2e9d9f450fc9cb681.patch 2019-03-07 18:20:23.000000000 +0000 @@ -0,0 +1,32 @@ +From 66f6f0bc1743b740802d33f2e9d9f450fc9cb681 Mon Sep 17 00:00:00 2001 +From: Alexander Steffen +Date: Thu, 20 Sep 2018 00:32:18 +0200 +Subject: [PATCH] Add Tamron SP 24-70mm f/2.8 Di VC USD G2 for Canon + +Fixes #330. +--- + src/canonmn.cpp | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/src/canonmn.cpp b/src/canonmn.cpp +index 9fcb21994..67fb3bb46 100644 +--- a/src/canonmn.cpp ++++ b/src/canonmn.cpp +@@ -1022,7 +1022,8 @@ namespace Exiv2 { + { 488, "Canon EF-S 15-85mm f/3.5-5.6 IS USM" }, + { 489, "Canon EF 70-300mm f/4-5.6L IS USM" }, + { 490, "Canon EF 8-15mm f/4L Fisheye USM" }, +- { 491, "Canon EF 300mm f/2.8L IS II USM" }, ++ { 491, "Canon EF 300mm f/2.8L IS II USM" }, // 0 ++ { 491, "Tamron SP 24-70mm f/2.8 Di VC USD G2" }, // 1 + { 492, "Canon EF 400mm f/2.8L IS II USM" }, + { 493, "Canon EF 500mm f/4L IS II USM" }, // 0 + { 493, "Canon EF 24-105mm f/4L IS USM" }, // 1 +@@ -1117,6 +1118,7 @@ namespace Exiv2 { + { 250, printCsLensByFocalLength }, // not tested + { 254, printCsLensByFocalLength }, + { 255, printCsLensByFocalLength }, // not tested ++ { 491, printCsLensByFocalLength }, + { 493, printCsLensByFocalLength }, // not tested + { 747, printCsLensByFocalLength }, // not tested + { 4143,printCsLensByFocalLength }, // not tested diff -Nru exiv2-0.25/debian/patches/git_201809202_cdb14f22fdb468c3c36331e8088200c37d2b590c.patch exiv2-0.25/debian/patches/git_201809202_cdb14f22fdb468c3c36331e8088200c37d2b590c.patch --- exiv2-0.25/debian/patches/git_201809202_cdb14f22fdb468c3c36331e8088200c37d2b590c.patch 1970-01-01 00:00:00.000000000 +0000 +++ exiv2-0.25/debian/patches/git_201809202_cdb14f22fdb468c3c36331e8088200c37d2b590c.patch 2019-03-07 18:20:23.000000000 +0000 @@ -0,0 +1,53 @@ +From cdb14f22fdb468c3c36331e8088200c37d2b590c Mon Sep 17 00:00:00 2001 +From: Alexander Steffen +Date: Wed, 19 Sep 2018 23:27:03 +0200 +Subject: [PATCH] Add various Sigma and Canon lenses + +--- + src/canonmn.cpp | 12 ++++++++---- + 1 file changed, 8 insertions(+), 4 deletions(-) + +diff --git a/src/canonmn.cpp b/src/canonmn.cpp +index 67fb3bb46..faa493b69 100644 +--- a/src/canonmn.cpp ++++ b/src/canonmn.cpp +@@ -804,6 +804,7 @@ namespace Exiv2 { + { 53, "Canon EF-S 18-55mm f/3.5-5.6 III" }, + { 54, "Canon EF-S 55-250mm f/4-5.6 IS II" }, + { 60, "Irix 11mm f/4" }, ++ { 82, "Canon TS-E 135mm f/4L Macro" }, + { 94, "Canon TS-E 17mm f/4L" }, + { 95, "Canon TS-E 24.0mm f/3.5 L II" }, + { 124, "Canon MP-E 65mm f/2.8 1-5x Macro Photo" }, +@@ -876,7 +877,8 @@ namespace Exiv2 { + { 153, "Tamron 18-250mm f/3.5-6.3 Di II LD Aspherical [IF] Macro" }, // 4 + { 154, "Canon EF 20mm f/2.8 USM" }, // 0 + { 154, "Zeiss Milvus 21mm f/2.8" }, // 1 +- { 155, "Canon EF 85mm f/1.8 USM" }, ++ { 155, "Canon EF 85mm f/1.8 USM" }, // 0 ++ { 155, "Sigma 14mm f/1.8 DG HSM | A" }, // 1 + { 156, "Canon EF 28-105mm f/3.5-4.5 USM" }, // 0 + { 156, "Tamron SP 70-300mm f/4-5.6 Di VC USD" }, // 1 + { 156, "Tamron SP AF 28-105mm f/2.8 LD Aspherical IF" }, // 2 +@@ -933,9 +935,10 @@ namespace Exiv2 { + { 180, "Canon EF 35mm f/1.4L" }, // 0 + { 180, "Sigma 50mm f/1.4 DG HSM | A" }, // 1 + { 180, "Sigma 24mm f/1.4 DG HSM | A" }, // 2 +- { 180, "Zeiss Milvus 50mm f/1.4" }, // 3 +- { 180, "Zeiss Milvus 85mm f/1.4" }, // 4 +- { 180, "Zeiss Otus 28mm f/1.4 ZE" }, // 5 ++ { 180, "Sigma 20mm f/1.4 DG HSM | A" }, // 3 ++ { 180, "Zeiss Milvus 50mm f/1.4" }, // 4 ++ { 180, "Zeiss Milvus 85mm f/1.4" }, // 5 ++ { 180, "Zeiss Otus 28mm f/1.4 ZE" }, // 6 + { 181, "Canon EF 100-400mm f/4.5-5.6L IS + 1.4x" }, // 0 + { 181, "Sigma 150-600mm f/5-6.3 DG OS HSM | S + 1.4x" }, // 1 + { 182, "Canon EF 100-400mm f/4.5-5.6L IS + 2x" }, // 0 +@@ -1099,6 +1102,7 @@ namespace Exiv2 { + { 152, printCsLensByFocalLength }, + { 153, printCsLensByFocalLength }, + { 154, printCsLensByFocalLength }, // not tested ++ { 155, printCsLensByFocalLength }, + { 156, printCsLensByFocalLengthAndMaxAperture }, + { 160, printCsLensByFocalLength }, + { 161, printCsLensByFocalLength }, diff -Nru exiv2-0.25/debian/patches/git_201809203_4f1a907792fbed08360447f5725bc1d677a040a8.patch exiv2-0.25/debian/patches/git_201809203_4f1a907792fbed08360447f5725bc1d677a040a8.patch --- exiv2-0.25/debian/patches/git_201809203_4f1a907792fbed08360447f5725bc1d677a040a8.patch 1970-01-01 00:00:00.000000000 +0000 +++ exiv2-0.25/debian/patches/git_201809203_4f1a907792fbed08360447f5725bc1d677a040a8.patch 2019-03-07 18:20:23.000000000 +0000 @@ -0,0 +1,41 @@ +From 4f1a907792fbed08360447f5725bc1d677a040a8 Mon Sep 17 00:00:00 2001 +From: Alexander Steffen +Date: Wed, 19 Sep 2018 23:26:35 +0200 +Subject: [PATCH] Add new IDs for Sigma lenses with firmware 2.00 + +The firmware update changed the IDs, so that the same lens may now be known +under different IDs. +--- + src/canonmn.cpp | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/src/canonmn.cpp b/src/canonmn.cpp +index faa493b69..d678bd125 100644 +--- a/src/canonmn.cpp ++++ b/src/canonmn.cpp +@@ -1022,6 +1022,7 @@ namespace Exiv2 { + //{ 254, "Tamron SP 90mm f/2.8 Di VC USD Macro 1:1 F017" }, // 2 model released in 2016 + { 255, "Sigma 24-105mm f/4 DG OS HSM | A" }, // 0 + { 255, "Sigma 180mm f/2.8 EX DG OS HSM APO Macro" }, // 1 ++ { 368, "Sigma 18-35mm f/1.8 DC HSM | A" }, + { 488, "Canon EF-S 15-85mm f/3.5-5.6 IS USM" }, + { 489, "Canon EF 70-300mm f/4-5.6L IS USM" }, + { 490, "Canon EF 8-15mm f/4L Fisheye USM" }, +@@ -1041,6 +1042,9 @@ namespace Exiv2 { + { 506, "Canon EF 400mm f/4 DO IS II USM" }, + { 507, "Canon EF 16-35mm f/4L IS USM" }, + { 508, "Canon EF 11-24mm f/4L USM" }, ++ { 624, "Sigma 14mm f/1.8 DG HSM | A" }, // 0 ++ { 624, "Sigma 150-600mm f/5-6.3 DG OS HSM | C" }, // 1 ++ { 624, "Sigma 150-600mm f/5-6.3 DG OS HSM | C + 1.4x" }, // 2 + { 747, "Canon EF 100-400mm f/4.5-5.6L IS II USM" }, // 0 + { 747, "Tamron SP 150-600mm F5-6.3 Di VC USD G2" }, // 1 + { 748, "Canon EF 100-400mm f/4.5-5.6L IS II USM + 1.4x" }, +@@ -1124,6 +1128,7 @@ namespace Exiv2 { + { 255, printCsLensByFocalLength }, // not tested + { 491, printCsLensByFocalLength }, + { 493, printCsLensByFocalLength }, // not tested ++ { 624, printCsLensByFocalLengthTC }, + { 747, printCsLensByFocalLength }, // not tested + { 4143,printCsLensByFocalLength }, // not tested + { 4154,printCsLensByFocalLength }, // not tested diff -Nru exiv2-0.25/debian/patches/git_20181107_16201985684a4021c5f7a446434c1076e7409aed.patch exiv2-0.25/debian/patches/git_20181107_16201985684a4021c5f7a446434c1076e7409aed.patch --- exiv2-0.25/debian/patches/git_20181107_16201985684a4021c5f7a446434c1076e7409aed.patch 1970-01-01 00:00:00.000000000 +0000 +++ exiv2-0.25/debian/patches/git_20181107_16201985684a4021c5f7a446434c1076e7409aed.patch 2019-03-07 18:20:23.000000000 +0000 @@ -0,0 +1,35 @@ +From 16201985684a4021c5f7a446434c1076e7409aed Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Luis=20D=C3=ADaz=20M=C3=A1s?= +Date: Wed, 7 Nov 2018 08:10:33 +0100 +Subject: [PATCH] Update fujiColor tag with descriptions for new Fujifilm + monochrome modes + +--- + src/fujimn.cpp | 14 +++++++++----- + 1 file changed, 9 insertions(+), 5 deletions(-) + +diff --git a/src/fujimn.cpp b/src/fujimn.cpp +index 13e571bdb..741811368 100644 +--- a/src/fujimn.cpp ++++ b/src/fujimn.cpp +@@ -75,11 +75,15 @@ namespace Exiv2 { + + //! Color, tag 0x1003 + extern const TagDetails fujiColor[] = { +- { 0, N_("Normal") }, +- { 256, N_("High") }, +- { 512, N_("Low") }, +- { 768, N_("None (black & white)") }, +- { 768, N_("None (black & white)") } // To silence compiler warning ++ { 0, N_("Normal") }, ++ { 256, N_("High") }, ++ { 512, N_("Low") }, ++ { 768, N_("Monochrome") }, ++ { 769, N_("Monochrome + R Filter") }, ++ { 770, N_("Monochrome + Ye Filter") }, ++ { 771, N_("Monochrome + G Filter") }, ++ { 784, N_("Sepia") }, ++ { 768, N_("Monochrome") } // To silence compiler warning + }; + + //! Tone, tag 0x1004 diff -Nru exiv2-0.25/debian/patches/git_20181223_7eb67aabe4b428f096d3b286a54e82af0461234f.patch exiv2-0.25/debian/patches/git_20181223_7eb67aabe4b428f096d3b286a54e82af0461234f.patch --- exiv2-0.25/debian/patches/git_20181223_7eb67aabe4b428f096d3b286a54e82af0461234f.patch 1970-01-01 00:00:00.000000000 +0000 +++ exiv2-0.25/debian/patches/git_20181223_7eb67aabe4b428f096d3b286a54e82af0461234f.patch 2019-03-07 18:20:23.000000000 +0000 @@ -0,0 +1,281 @@ +From 7eb67aabe4b428f096d3b286a54e82af0461234f Mon Sep 17 00:00:00 2001 +From: Freddie Witherden +Date: Sat, 31 Mar 2018 14:11:05 +0100 +Subject: [PATCH] Update Nikon lens database. + +--- + src/nikonmn.cpp | 136 +++++++++++++++++++++++++------------------- + 1 file changed, 79 insertions(+), 57 deletions(-) + +diff --git a/src/nikonmn.cpp b/src/nikonmn.cpp +index 3fde50fb7..f5efb578f 100644 +--- a/src/nikonmn.cpp ++++ b/src/nikonmn.cpp +@@ -1771,21 +1771,21 @@ namespace Exiv2 { + #ifndef FMOUNTLH + #define FMOUNTLH + //------------------------------------------------------------------------------ +-// List of AF F-Mount lenses - Version 4.4.527.01 2017-02-27 ++// List of AF F-Mount lenses - Version 4.4.550.02 2018-03-03 + //------------------------------------------------------------------------------ +-#define FMLVERSION "4.4.527.01" +-#define FMLDATE "2017-02-27" ++#define FMLVERSION "4.4.550.02" ++#define FMLDATE "2018-03-03" + //------------------------------------------------------------------------------ + // + // +-// Created by Robert Rottmerhusen 2005 - 2017 ++// Created by Robert Rottmerhusen 2005 - 2018 + // http://www.rottmerhusen.com (lens_id@rottmerhusen.com) + // + // For contributor info and more visit my online list: + // http://www.rottmerhusen.com/objektives/lensid/thirdparty.html + // + // +-// Seven misidentified lenses due to double LensIDs: ++// Eight misidentified lenses due to double LensIDs: + // + // 2F 48 30 44 24 24 29 02.1: Nikon AF Zoom-Nikkor 20-35mm f/2.8D IF + // 2F 48 30 44 24 24 29 02.2: Tokina AT-X 235 AF PRO (AF 20-35mm f/2.8) +@@ -1808,6 +1808,9 @@ namespace Exiv2 { + // 25 48 3C 5C 24 24 1B 02.1: Tokina AT-X 287 AF PRO SV (AF 28-70mm f/2.8) + // 25 48 3C 5C 24 24 1B 02.2: Tokina AT-X 270 AF PRO II (AF 28-70mm f/2.6-2.8) + // ++// 4A 48 24 24 24 0C 4D 02.1: Samyang AE 14mm f/2.8 ED AS IF UMC ++// 4A 48 24 24 24 0C 4D 02.2: Samyang 10mm f/2.8 ED AS NCS CS ++// + // + // product number/order code not complete + // +@@ -1842,6 +1845,7 @@ fmountlens[] = { + {0x0F,0x58,0x50,0x50,0x14,0x14,0x05,0x00,0x00,0x00,0x00, "Nikon", "JAA009AD", "AF Nikkor 50mm f/1.8 N"}, + {0x10,0x48,0x8E,0x8E,0x30,0x30,0x08,0x00,0x00,0x00,0x00, "Nikon", "JAA32301", "AF Nikkor 300mm f/4 IF-ED"}, + {0x11,0x48,0x44,0x5C,0x24,0x24,0x08,0x00,0x00,0x00,0x00, "Nikon", "JAA73301", "AF Zoom-Nikkor 35-70mm f/2.8"}, ++{0x11,0x48,0x44,0x5C,0x24,0x24,0x15,0x00,0x00,0x00,0x00, "Nikon", "JAA73301", "AF Zoom-Nikkor 35-70mm f/2.8"}, + {0x12,0x48,0x5C,0x81,0x30,0x3C,0x09,0x00,0x00,0x00,0x00, "Nikon", "JAA73201", "AF Nikkor 70-210mm f/4-5.6"}, + {0x13,0x42,0x37,0x50,0x2A,0x34,0x0B,0x00,0x00,0x00,0x00, "Nikon", "JAA73401", "AF Zoom-Nikkor 24-50mm f/3.3-4.5"}, + {0x14,0x48,0x60,0x80,0x24,0x24,0x0B,0x00,0x00,0x00,0x00, "Nikon", "JAA73501", "AF Zoom-Nikkor 80-200mm f/2.8 ED"}, +@@ -2046,6 +2050,7 @@ fmountlens[] = { + {0xB4,0x40,0x37,0x62,0x2C,0x34,0xB6,0x0E,0x01,0x00,0x00, "Nikon", "JAA816DA", "AF-S Nikkor 24-85mm f/3.5-4.5G ED VR"}, + {0xB5,0x4C,0x3C,0x3C,0x14,0x14,0xB7,0x06,0x01,0x00,0x00, "Nikon", "JAA135DA", "AF-S Nikkor 28mm f/1.8G"}, + {0xB6,0x3C,0xB0,0xB0,0x3C,0x3C,0xB8,0x0E,0x01,0x00,0x00, "Nikon", "JAA531DA", "AF-S VR Nikkor 800mm f/5.6E FL ED"}, ++{0xB6,0x3C,0xB0,0xB0,0x3C,0x3C,0xB8,0x4E,0x01,0x00,0x00, "Nikon", "JAA531DA", "AF-S VR Nikkor 800mm f/5.6E FL ED"}, + {0xB7,0x44,0x60,0x98,0x34,0x3C,0xB9,0x0E,0x01,0x00,0x00, "Nikon", "JAA817DA", "AF-S Nikkor 80-400mm f/4.5-5.6G ED VR"}, + {0xB8,0x40,0x2D,0x44,0x2C,0x34,0xBA,0x06,0x01,0x00,0x00, "Nikon", "JAA818DA", "AF-S Nikkor 18-35mm f/3.5-4.5G ED"}, + {0xA0,0x40,0x2D,0x74,0x2C,0x3C,0xBB,0x0E,0x01,0x00,0x01, "Nikon", "JAA819DA", "AF-S DX Nikkor 18-140mm f/3.5-5.6G ED VR"}, +@@ -2072,15 +2077,27 @@ fmountlens[] = { + {0xAF,0x4C,0x37,0x37,0x14,0x14,0xCC,0x06,0x01,0x00,0x03, "Nikon", "JAA139DA", "AF-S Nikkor 24mm f/1.8G ED"}, + {0xA3,0x38,0x5C,0x8E,0x34,0x40,0xCE,0x8E,0x01,0x00,0x03, "Nikon", "JAA829DA", "AF-P DX Nikkor 70-300mm f/4.5-6.3G ED VR"}, + {0xA3,0x38,0x5C,0x8E,0x34,0x40,0xCE,0x0E,0x01,0x00,0x03, "Nikon", "JAA828DA", "AF-P DX Nikkor 70-300mm f/4.5-6.3G ED"}, +-// CE +-// CF + {0xA4,0x48,0x5C,0x80,0x24,0x24,0xCF,0x4E,0x01,0x00,0x03, "Nikon", "JAA830DA", "AF-S Nikkor 70-200mm f/2.8E FL ED VR"}, + {0xA4,0x48,0x5C,0x80,0x24,0x24,0xCF,0x0E,0x01,0x00,0x03, "Nikon", "JAA830DA", "AF-S Nikkor 70-200mm f/2.8E FL ED VR"}, + {0xA5,0x54,0x6A,0x6A,0x0C,0x0C,0xD0,0x46,0x01,0x00,0x03, "Nikon", "JAA343DA", "AF-S Nikkor 105mm f/1.4E ED"}, + {0xA5,0x54,0x6A,0x6A,0x0C,0x0C,0xD0,0x06,0x01,0x00,0x03, "Nikon", "JAA343DA", "AF-S Nikkor 105mm f/1.4E ED"}, ++{0xA6,0x48,0x2F,0x2F,0x30,0x30,0xD1,0x46,0x01,0x00,0x03, "Nikon", "JAA639DA", "PC Nikkor 19mm f/4E ED"}, ++{0xA6,0x48,0x2F,0x2F,0x30,0x30,0xD1,0x06,0x01,0x00,0x03, "Nikon", "JAA639DA", "PC Nikkor 19mm f/4E ED"}, ++{0xA7,0x40,0x11,0x26,0x2C,0x34,0xD2,0x46,0x01,0x00,0x03, "Nikon", "JAA831DA", "AF-S Fisheye Nikkor 8-15mm f/3.5-4.5E ED"}, ++{0xA7,0x40,0x11,0x26,0x2C,0x34,0xD2,0x06,0x01,0x00,0x03, "Nikon", "JAA831DA", "AF-S Fisheye Nikkor 8-15mm f/3.5-4.5E ED"}, ++{0xA8,0x38,0x18,0x30,0x34,0x3C,0xD3,0x8E,0x01,0x00,0x03, "Nikon", "JAA832DA", "AF-P DX Nikkor 10-20mm f/4.5-5.6G VR"}, ++{0xA8,0x38,0x18,0x30,0x34,0x3C,0xD3,0x0E,0x01,0x00,0x03, "Nikon", "JAA832DA", "AF-P DX Nikkor 10-20mm f/4.5-5.6G VR"}, ++//A9 D4 ++//AA D5 ++{0xAB,0x44,0x5C,0x8E,0x34,0x3C,0xD6,0xCE,0x01,0x00,0x03, "Nikon", "JAA833DA", "AF-P Nikkor 70-300mm f/4.5-5.6E ED VR"}, ++{0xAB,0x44,0x5C,0x8E,0x34,0x3C,0xD6,0x0E,0x01,0x00,0x03, "Nikon", "JAA833DA", "AF-P Nikkor 70-300mm f/4.5-5.6E ED VR"}, ++{0xAC,0x54,0x3C,0x3C,0x0C,0x0C,0xD7,0x46,0x01,0x00,0x03, "Nikon", "JAA140DA", "AF-S Nikkor 28mm f/1.4E ED"}, ++{0xAC,0x54,0x3C,0x3C,0x0C,0x0C,0xD7,0x06,0x01,0x00,0x03, "Nikon", "JAA140DA", "AF-S Nikkor 28mm f/1.4E ED"}, ++// + // + // +-// "Nikon" "JAA831DA" "AF-S DX Nikkor 18-200mm f/3.5-5.6G ED VR II" ++// ++// "AF-S DX Nikkor 18-200mm f/3.5-5.6G ED VR II" + // + {0x01,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00, "Nikon", "JAA90701", "TC-16A"}, + {0x01,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00, "Nikon", "JAA90701", "TC-16A"}, +@@ -2123,6 +2140,7 @@ fmountlens[] = { + {0x99,0x48,0x76,0x76,0x24,0x24,0x4B,0x0E,0x43,0x00,0x00, "Sigma", "", "APO Macro 150mm F2.8 EX DG OS HSM"}, + {0x48,0x4C,0x7C,0x7C,0x2C,0x2C,0x4B,0x02,0x43,0x00,0x00, "Sigma", "", "APO Macro 180mm F3.5 EX DG HSM"}, + {0x48,0x4C,0x7D,0x7D,0x2C,0x2C,0x4B,0x02,0x43,0x00,0x00, "Sigma", "105556", "APO Macro 180mm F3.5 EX DG HSM"}, ++{0x94,0x48,0x7C,0x7C,0x24,0x24,0x4B,0x0E,0x43,0x00,0x00, "Sigma", "", "APO Macro 180mm F2.8 EX DG OS HSM"}, + //M "Sigma" "" "APO 300mm F2.8"; + {0x48,0x54,0x8E,0x8E,0x24,0x24,0x4B,0x02,0x03,0x00,0x00, "Sigma", "", "APO 300mm F2.8 EX DG HSM"}, + {0xFB,0x54,0x8E,0x8E,0x24,0x24,0x4B,0x02,0x13,0x00,0x00, "Sigma", "195557", "APO 300mm F2.8 EX DG HSM"}, +@@ -2231,19 +2249,17 @@ fmountlens[] = { + {0x48,0x54,0x6F,0x8E,0x24,0x24,0x4B,0x02,0x03,0x00,0x00, "Sigma", "", "APO 120-300mm F2.8 EX DG HSM"}, + {0x7A,0x54,0x6E,0x8E,0x24,0x24,0x4B,0x02,0x03,0x00,0x00, "Sigma", "135553", "APO 120-300mm F2.8 EX DG HSM"}, + {0xFA,0x54,0x6E,0x8E,0x24,0x24,0x4B,0x02,0x03,0x00,0x00, "Sigma", "135553", "APO 120-300mm F2.8 EX DG HSM"}, +-{0x8D,0x48,0x6E,0x8E,0x24,0x24,0x4B,0x0E,0x00,0x00,0x00, "Sigma", "137557", "120-300mm F2.8 DG OS HSM | S"}, + {0xCF,0x38,0x6E,0x98,0x34,0x3C,0x4B,0x0E,0x03,0x00,0x00, "Sigma", "728557", "APO 120-400mm F4.5-5.6 DG OS HSM"}, ++{0xC3,0x34,0x68,0x98,0x38,0x40,0x4B,0x4E,0x03,0x00,0x00, "Sigma", "", "100-400mm F5-6.3 DG OS HSM C"}, ++{0x8D,0x48,0x6E,0x8E,0x24,0x24,0x4B,0x0E,0x03,0x00,0x00, "Sigma", "", "120-300mm F2.8 DG OS HSM | S"}, + {0x26,0x44,0x73,0x98,0x34,0x3C,0x1C,0x02,0x00,0x00,0x00, "Sigma", "", "135-400mm F4.5-5.6 APO Aspherical"}, + {0xCE,0x34,0x76,0xA0,0x38,0x40,0x4B,0x0E,0x03,0x00,0x00, "Sigma", "737559", "APO 150-500mm F5-6.3 DG OS HSM"}, +-{0x81,0x34,0x76,0xA6,0x38,0x40,0x4B,0x0E,0x03,0x00,0x00, "Sigma", "", "150-600mm F5-6.3 DG OS HSM | S"}, +-{0x82,0x34,0x76,0xA6,0x38,0x40,0x4B,0x0E,0x03,0x00,0x00, "Sigma", "", "150-600mm F5-6.3 DG OS HSM | C"}, ++{0x81,0x34,0x76,0xA6,0x38,0x40,0x4B,0x0E,0x03,0x00,0x00, "Sigma", "", "150-600mm F5-6.3 DG OS HSM Sports"}, ++{0x82,0x34,0x76,0xA6,0x38,0x40,0x4B,0x0E,0x03,0x00,0x00, "Sigma", "", "150-600mm F5-6.3 DG OS HSM Contemporary"}, + {0x26,0x40,0x7B,0xA0,0x34,0x40,0x1C,0x02,0x00,0x00,0x00, "Sigma", "", "APO 170-500mm F5-6.3 Aspherical RF"}, + {0xA7,0x49,0x80,0xA0,0x24,0x24,0x4B,0x06,0x03,0x00,0x00, "Sigma", "", "APO 200-500mm F2.8 EX DG"}, + {0x48,0x3C,0x8E,0xB0,0x3C,0x3C,0x4B,0x02,0x03,0x00,0x00, "Sigma", "595555", "APO 300-800mm F5.6 EX DG HSM"}, + // +-{0x00,0x00,0x00,0x00,0x00,0x00,0xF1,0x0C,0x00,0x00,0x00, "Sigma", "", "APO Tele Converter 1.4x EX DG"}, +-{0x00,0x00,0x00,0x00,0x00,0x00,0xF2,0x18,0x00,0x00,0x00, "Sigma", "", "APO Tele Converter 2x EX DG"}, +-// + //------------------------------------------------------------------------------ + // Tamron lenses by focal length, first fixed then zoom lenses + //------------------------------------------------------------------------------ +@@ -2284,6 +2300,7 @@ fmountlens[] = { + {0x00,0x40,0x2D,0x88,0x2C,0x40,0x00,0x06,0x01,0x00,0x00, "Tamron", "A18NII", "AF 18-250mm F/3.5-6.3 Di II LD Aspherical (IF) Macro "}, + {0xF5,0x40,0x2C,0x8A,0x2C,0x40,0x40,0x0E,0x01,0x00,0x00, "Tamron", "B003", "AF 18-270mm F/3.5-6.3 Di II VC LD Aspherical (IF) Macro"}, + {0xF0,0x3F,0x2D,0x8A,0x2C,0x40,0xDF,0x0E,0x01,0x00,0x00, "Tamron", "B008", "AF 18-270mm F/3.5-6.3 Di II VC PZD"}, ++{0xE0,0x40,0x2D,0x98,0x2C,0x41,0xDF,0x4E,0x01,0x00,0x00, "Tamron", "B028", "AF 18-400mm F/3.5-6.3 Di II VC HLD"}, + {0x07,0x40,0x2F,0x44,0x2C,0x34,0x03,0x02,0x00,0x00,0x00, "Tamron", "A10", "AF 19-35mm F/3.5-4.5"}, + {0x07,0x40,0x30,0x45,0x2D,0x35,0x03,0x02,0x00,0x00,0x00, "Tamron", "A10", "AF 19-35mm F/3.5-4.5"}, + {0x00,0x49,0x30,0x48,0x22,0x2B,0x00,0x02,0x00,0x00,0x00, "Tamron", "166D", "SP AF 20-40mm F/2.7-3.5"}, +@@ -2291,6 +2308,7 @@ fmountlens[] = { + //M "Tamron" "266D" "SP AF 20-40mm F/2.7-3.5 Aspherical-IF"; + {0xFE,0x48,0x37,0x5C,0x24,0x24,0xDF,0x0E,0x01,0x00,0x00, "Tamron", "A007", "SP 24-70mm F/2.8 Di VC USD"}, + //M "Tamron" "73D" "AF 24-70mm F/3.3-5.6 Aspherical"; ++{0xCE,0x47,0x37,0x5C,0x25,0x25,0xDF,0x4E,0x00,0x00,0x00, "Tamron", "A032", "SP 24-70mm F/2.8 Di VC USD G2"}, + {0x45,0x41,0x37,0x72,0x2C,0x3C,0x48,0x02,0x00,0x00,0x00, "Tamron", "190D", "SP AF 24-135mm F/3.5-5.6 AD Aspherical (IF) Macro"}, + //M "Tamron" "159D" "AF 28-70mm F/3.5-4.5"; + //M "Tamron" "259D" "AF 28-70mm F/3.5-4.5"; +@@ -2334,7 +2352,7 @@ fmountlens[] = { + //M "Tamron" "62D" "AF 90-300mm F/4.5-5.6"; + //M "Tamron" "186D" "AF 100-300mm F/5-6.3"; + {0xEB,0x40,0x76,0xA6,0x38,0x40,0xDF,0x0E,0x00,0x00,0x00, "Tamron", "A011", "SP AF 150-600mm F/5-6.3 VC USD"}, +-{0xE3,0x40,0x76,0xA6,0x38,0x40,0xDF,0x4E,0x00,0x00,0x00, "Tamron", "A022", "SP AF 150-600mm F/5-6.3 VC USD G2"}, ++{0xE3,0x40,0x76,0xA6,0x38,0x40,0xDF,0x4E,0x00,0x00,0x00, "Tamron", "A022", "SP AF 150-600mm F/5-6.3 Di VC USD G2"}, + {0x20,0x3C,0x80,0x98,0x3D,0x3D,0x1E,0x02,0x00,0x00,0x00, "Tamron", "75D", "AF 200-400mm F/5.6 LD IF"}, + {0x00,0x3E,0x80,0xA0,0x38,0x3F,0x00,0x02,0x00,0x00,0x00, "Tamron", "A08", "SP AF 200-500mm F/5-6.3 Di LD (IF)"}, + {0x00,0x3F,0x80,0xA0,0x38,0x3F,0x00,0x02,0x00,0x00,0x00, "Tamron", "A08", "SP AF 200-500mm F/5-6.3 Di"}, +@@ -2343,65 +2361,62 @@ fmountlens[] = { + // Tokina Lenses by focal length, first fixed then zoom lenses + //------------------------------------------------------------------------------ + // +-{0x00,0x40,0x2B,0x2B,0x2C,0x2C,0x00,0x02,0x00,0x00,0x00, "Tokina", "", "AT-X 17 AF PRO (17mm f/3.5)"}, +-{0x00,0x47,0x44,0x44,0x24,0x24,0x00,0x06,0x40,0x00,0x00, "Tokina", "T303503", "AT-X M35 PRO DX (35mm f/2.8 Macro)"}, +-{0x00,0x54,0x68,0x68,0x24,0x24,0x00,0x02,0x40,0x00,0x00, "Tokina", "T310003N", "AT-X M100 AF PRO D (100mm f/2.8 Macro)"}, +-{0x27,0x48,0x8E,0x8E,0x30,0x30,0x1D,0x02,0x00,0x00,0x00, "Tokina", "", "AT-X 304 AF (300mm f/4.0)"}, +-{0x00,0x54,0x8E,0x8E,0x24,0x24,0x00,0x02,0x00,0x00,0x00, "Tokina", "", "AT-X 300 AF PRO (300mm f/2.8)"}, +-{0x12,0x3B,0x98,0x98,0x3D,0x3D,0x09,0x00,0x00,0x00,0x00, "Tokina", "", "AT-X 400 AF SD (400mm f/5.6)"}, ++{0x00,0x40,0x2B,0x2B,0x2C,0x2C,0x00,0x02,0x00,0x00,0x00, "Tokina", "", "AT-X 17 AF PRO (AF 17mm f/3.5)"}, ++{0x00,0x47,0x44,0x44,0x24,0x24,0x00,0x06,0x40,0x00,0x00, "Tokina", "T303503", "AT-X M35 PRO DX (AF 35mm f/2.8 Macro)"}, ++{0x00,0x54,0x68,0x68,0x24,0x24,0x00,0x02,0x40,0x00,0x00, "Tokina", "T310003N", "AT-X M100 AF PRO D (AF 100mm f/2.8 Macro)"}, ++{0x27,0x48,0x8E,0x8E,0x30,0x30,0x1D,0x02,0x00,0x00,0x00, "Tokina", "", "AT-X 304 AF (AF 300mm f/4.0)"}, ++{0x00,0x54,0x8E,0x8E,0x24,0x24,0x00,0x02,0x00,0x00,0x00, "Tokina", "", "AT-X 300 AF PRO (AF 300mm f/2.8)"}, ++{0x12,0x3B,0x98,0x98,0x3D,0x3D,0x09,0x00,0x00,0x00,0x00, "Tokina", "", "AT-X 400 AF SD (AF 400mm f/5.6)"}, + // +-{0x00,0x40,0x18,0x2B,0x2C,0x34,0x00,0x06,0x00,0x00,0x00, "Tokina", "T4101703", "AT-X 107 AF DX Fisheye (10-17mm f/3.5-4.5)"}, +-{0x00,0x48,0x1C,0x29,0x24,0x24,0x00,0x06,0x00,0x00,0x00, "Tokina", "T4111603", "AT-X 116 PRO DX (11-16mm f/2.8)"}, +-{0x7A,0x48,0x1C,0x29,0x24,0x24,0x7E,0x06,0x00,0x00,0x00, "Tokina", "", "AT-X 116 PRO DX II (11-16mm f/2.8)"}, +-{0x7A,0x48,0x1C,0x30,0x24,0x24,0x7E,0x06,0x00,0x00,0x00, "Tokina", "", "AT-X 11-20 F2.8 PRO DX (11-20mm f/2.8)"}, +-{0x00,0x3C,0x1F,0x37,0x30,0x30,0x00,0x06,0x00,0x00,0x00, "Tokina", "T4122403", "AT-X 124 AF PRO DX (12-24mm f/4)"}, +-{0x7A,0x3C,0x1F,0x37,0x30,0x30,0x7E,0x06,0x01,0x02,0x00, "Tokina", "T4122423", "AT-X 124 AF PRO DX II (12-24mm f/4)"}, +-{0x7A,0x3C,0x1F,0x3C,0x30,0x30,0x7E,0x06,0x00,0x00,0x00, "Tokina", "", "AT-X 12-28 PRO DX (12-28mm F/4)"}, +-{0x00,0x48,0x29,0x3C,0x24,0x24,0x00,0x06,0x00,0x00,0x00, "Tokina", "", "AT-X 16-28 AF PRO FX (16-28mm f/2.8)"}, +-{0x00,0x48,0x29,0x50,0x24,0x24,0x00,0x06,0x00,0x00,0x00, "Tokina", "", "AT-X 165 PRO DX (16-50mm f/2.8)"}, +-{0x00,0x40,0x2A,0x72,0x2C,0x3C,0x00,0x06,0x00,0x00,0x00, "Tokina", "", "AT-X 16.5-135 DX (16.5-135mm F3.5-5.6)"}, +-{0x00,0x3C,0x2B,0x44,0x30,0x30,0x00,0x06,0x00,0x00,0x00, "Tokina", "", "AT-X 17-35 F4 PRO FX (17-35mm f/4)"}, +-{0x2F,0x40,0x30,0x44,0x2C,0x34,0x29,0x02,0x00,0x02,0x00, "Tokina", "", "AF 193 (19-35mm f/3.5-4.5)"}, +-{0x2F,0x48,0x30,0x44,0x24,0x24,0x29,0x02,0x00,0x02,0x00, "Tokina", "", "AT-X 235 AF PRO (20-35mm f/2.8)"}, ++{0x00,0x40,0x18,0x2B,0x2C,0x34,0x00,0x06,0x00,0x00,0x00, "Tokina", "T4101703", "AT-X 107 AF DX Fisheye (AF 10-17mm f/3.5-4.5)"}, ++{0x00,0x48,0x1C,0x29,0x24,0x24,0x00,0x06,0x00,0x00,0x00, "Tokina", "T4111603", "AT-X 116 PRO DX (AF 11-16mm f/2.8)"}, ++{0x7A,0x48,0x1C,0x29,0x24,0x24,0x7E,0x06,0x00,0x00,0x00, "Tokina", "", "AT-X 116 PRO DX II (AF 11-16mm f/2.8)"}, ++{0x7A,0x48,0x1C,0x30,0x24,0x24,0x7E,0x06,0x00,0x00,0x00, "Tokina", "", "AT-X 11-20 F2.8 PRO DX (AF 11-20mm f/2.8)"}, ++{0x00,0x3C,0x1F,0x37,0x30,0x30,0x00,0x06,0x00,0x00,0x00, "Tokina", "T4122403", "AT-X 124 AF PRO DX (AF 12-24mm f/4)"}, ++{0x7A,0x3C,0x1F,0x37,0x30,0x30,0x7E,0x06,0x01,0x02,0x00, "Tokina", "T4122423", "AT-X 124 AF PRO DX II (AF 12-24mm f/4)"}, ++{0x7A,0x3C,0x1F,0x3C,0x30,0x30,0x7E,0x06,0x00,0x00,0x00, "Tokina", "", "AT-X 12-28 PRO DX (AF 12-28mm F/4)"}, ++{0x00,0x48,0x29,0x3C,0x24,0x24,0x00,0x06,0x00,0x00,0x00, "Tokina", "", "AT-X 16-28 AF PRO FX (AF 16-28mm f/2.8)"}, ++{0x00,0x48,0x29,0x50,0x24,0x24,0x00,0x06,0x00,0x00,0x00, "Tokina", "", "AT-X 165 PRO DX (AF 16-50mm f/2.8)"}, ++{0x00,0x40,0x2A,0x72,0x2C,0x3C,0x00,0x06,0x00,0x00,0x00, "Tokina", "", "AT-X 16.5-135 DX (AF 16.5-135mm F3.5-5.6)"}, ++{0x00,0x3C,0x2B,0x44,0x30,0x30,0x00,0x06,0x00,0x00,0x00, "Tokina", "", "AT-X 17-35 F4 PRO FX (AF 17-35mm f/4)"}, ++{0x2F,0x40,0x30,0x44,0x2C,0x34,0x29,0x02,0x00,0x02,0x00, "Tokina", "", "AF 193 (AF 19-35mm f/3.5-4.5)"}, ++{0x2F,0x48,0x30,0x44,0x24,0x24,0x29,0x02,0x00,0x02,0x00, "Tokina", "", "AT-X 235 AF PRO (AF 20-35mm f/2.8)"}, + //M "Tokina" "" "AF 235 (AF 20-35mm f/3.5-4.5)" +-{0x2F,0x40,0x30,0x44,0x2C,0x34,0x29,0x02,0x00,0x01,0x00, "Tokina", "", "AF 235 II (20-35mm f/3.5-4.5)"}, ++{0x2F,0x40,0x30,0x44,0x2C,0x34,0x29,0x02,0x00,0x01,0x00, "Tokina", "", "AF 235 II (AF 20-35mm f/3.5-4.5)"}, + //M "Tokina" "" "AT-X 240 AF (AF 24-40mm f/2.8)" +-{0x00,0x48,0x37,0x5C,0x24,0x24,0x00,0x06,0x00,0x00,0x00, "Tokina", "", "AT-X 24-70MM F2.8 PRO FX (24-70mm f/2.8)"}, +-{0x00,0x40,0x37,0x80,0x2C,0x3C,0x00,0x02,0x00,0x00,0x00, "Tokina", "", "AT-X 242 AF (24-200mm f/3.5-5.6)"}, +-{0x25,0x48,0x3C,0x5C,0x24,0x24,0x1B,0x02,0x00,0x02,0x00, "Tokina", "", "AT-X 270 AF PRO II (28-70mm f/2.6-2.8)"}, +-{0x25,0x48,0x3C,0x5C,0x24,0x24,0x1B,0x02,0x00,0x01,0x00, "Tokina", "", "AT-X 287 AF PRO SV (28-70mm f/2.8)"}, +-{0x07,0x48,0x3C,0x5C,0x24,0x24,0x03,0x00,0x00,0x00,0x00, "Tokina", "", "AT-X 287 AF (28-70mm f/2.8)"}, +-{0x07,0x47,0x3C,0x5C,0x25,0x35,0x03,0x00,0x00,0x00,0x00, "Tokina", "", "AF 287 SD (28-70mm f/2.8-4.5)"}, +-{0x07,0x40,0x3C,0x5C,0x2C,0x35,0x03,0x00,0x00,0x00,0x00, "Tokina", "", "AF 270 II (28-70mm f/3.5-4.5)"}, +-{0x00,0x48,0x3C,0x60,0x24,0x24,0x00,0x02,0x00,0x00,0x00, "Tokina", "", "AT-X 280 AF PRO (28-80mm f/2.8)"}, ++{0x00,0x48,0x37,0x5C,0x24,0x24,0x00,0x06,0x00,0x00,0x00, "Tokina", "", "AT-X 24-70MM F2.8 PRO FX (AF 24-70mm f/2.8)"}, ++{0x00,0x40,0x37,0x80,0x2C,0x3C,0x00,0x02,0x00,0x00,0x00, "Tokina", "", "AT-X 242 AF (AF 24-200mm f/3.5-5.6)"}, ++{0x25,0x48,0x3C,0x5C,0x24,0x24,0x1B,0x02,0x00,0x02,0x00, "Tokina", "", "AT-X 270 AF PRO II (AF 28-70mm f/2.6-2.8)"}, ++{0x25,0x48,0x3C,0x5C,0x24,0x24,0x1B,0x02,0x00,0x01,0x00, "Tokina", "", "AT-X 287 AF PRO SV (AF 28-70mm f/2.8)"}, ++{0x07,0x48,0x3C,0x5C,0x24,0x24,0x03,0x00,0x00,0x00,0x00, "Tokina", "", "AT-X 287 AF (AF 28-70mm f/2.8)"}, ++{0x07,0x47,0x3C,0x5C,0x25,0x35,0x03,0x00,0x00,0x00,0x00, "Tokina", "", "AF 287 SD (AF 28-70mm f/2.8-4.5)"}, ++{0x07,0x40,0x3C,0x5C,0x2C,0x35,0x03,0x00,0x00,0x00,0x00, "Tokina", "", "AF 270 II (AF 28-70mm f/3.5-4.5)"}, ++{0x00,0x48,0x3C,0x60,0x24,0x24,0x00,0x02,0x00,0x00,0x00, "Tokina", "", "AT-X 280 AF PRO (AF 28-80mm f/2.8)"}, + //M "Tokina" "" "AF 280 II EMZ (AF 28-80mm f/3.5-5.6)" + //M "Tokina" "" "AF 205 (AF 28-105mm f/3.5-4.5)" + //M "Tokina" "" "AF 282 (AF 28-200mm 3.5-5.6)" + //M "Tokina" "" "AF 282 EMZ II (AF 28-210mm f/4.2-6.5)" + //M "Tokina" "" "AF 370 (AF 35-70mm f/3.5-4.6)" + //M "Tokina" "" "AF 370 II (AF 35-70mm f/3.5-4.6)" +-{0x25,0x44,0x44,0x8E,0x34,0x42,0x1B,0x02,0x00,0x00,0x00, "Tokina", "", "AF 353 (35-300mm f/4.5-6.7)"}, +-{0x00,0x48,0x50,0x72,0x24,0x24,0x00,0x06,0x00,0x00,0x00, "Tokina", "", "AT-X 535 PRO DX (50-135mm f/2.8)"}, +-{0x00,0x3C,0x5C,0x80,0x30,0x30,0x00,0x0E,0x00,0x00,0x00, "Tokina", "", "AT-X 70-200MM F4 FX VCM-S (70-200mm f/4)"}, +-{0x00,0x48,0x5C,0x80,0x30,0x30,0x00,0x0E,0x00,0x00,0x00, "Tokina", "", "AT-X 70-200MM F4 FX VCM-S (70-200mm f/4)"}, ++{0x25,0x44,0x44,0x8E,0x34,0x42,0x1B,0x02,0x00,0x00,0x00, "Tokina", "", "AF 353 (AF 35-300mm f/4.5-6.7)"}, ++{0x00,0x48,0x50,0x72,0x24,0x24,0x00,0x06,0x00,0x00,0x00, "Tokina", "", "AT-X 535 PRO DX (AF 50-135mm f/2.8)"}, ++{0x00,0x3C,0x5C,0x80,0x30,0x30,0x00,0x0E,0x00,0x00,0x00, "Tokina", "", "AT-X 70-200MM F4 FX VCM-S (AF 70-200mm f/4)"}, ++{0x00,0x48,0x5C,0x80,0x30,0x30,0x00,0x0E,0x00,0x00,0x00, "Tokina", "", "AT-X 70-200MM F4 FX VCM-S (AF 70-200mm f/4)"}, + //M "Tokina" "" "AF 745 (AF 70-210mm f/4.5)" + //M "Tokina" "" "AF 210 (AF 70-210mm f/4.0-5.6)" + //M "Tokina" "" "AF 210 II SD (AF 70-210mm f/4.0-5.6)" +-{0x12,0x44,0x5E,0x8E,0x34,0x3C,0x09,0x00,0x00,0x00,0x00, "Tokina", "", "AF 730 (75-300mm F4.5-5.6)"}, ++{0x12,0x44,0x5E,0x8E,0x34,0x3C,0x09,0x00,0x00,0x00,0x00, "Tokina", "", "AF 730 (AF 75-300mm F4.5-5.6)"}, + //M "Tokina" "" "AF 730 II (AF 75-300mm f/4.5-5.6)" +-{0x14,0x54,0x60,0x80,0x24,0x24,0x0B,0x00,0x00,0x00,0x00, "Tokina", "", "AT-X 828 AF (80-200mm f/2.8)"}, +-{0x24,0x54,0x60,0x80,0x24,0x24,0x1A,0x02,0x00,0x00,0x00, "Tokina", "", "AT-X 828 AF PRO (80-200mm f/2.8)"}, ++{0x14,0x54,0x60,0x80,0x24,0x24,0x0B,0x00,0x00,0x00,0x00, "Tokina", "", "AT-X 828 AF (AF 80-200mm f/2.8)"}, ++{0x24,0x54,0x60,0x80,0x24,0x24,0x1A,0x02,0x00,0x00,0x00, "Tokina", "", "AT-X 828 AF PRO (AF 80-200mm f/2.8)"}, + //M "Tokina" "" "AT-X 840 AF (AF 80-400mm f/4.5-5.6)" +-{0x24,0x44,0x60,0x98,0x34,0x3C,0x1A,0x02,0x00,0x00,0x00, "Tokina", "", "AT-X 840 AF-II (80-400mm f/4.5-5.6)"}, +-{0x00,0x44,0x60,0x98,0x34,0x3C,0x00,0x02,0x00,0x00,0x00, "Tokina", "", "AT-X 840 D (80-400mm f/4.5-5.6)"}, +-{0x14,0x48,0x68,0x8E,0x30,0x30,0x0B,0x00,0x00,0x00,0x00, "Tokina", "", "AT-X 340 AF (100-300mm f/4)"}, ++{0x24,0x44,0x60,0x98,0x34,0x3C,0x1A,0x02,0x00,0x00,0x00, "Tokina", "", "AT-X 840 AF-II (AF 80-400mm f/4.5-5.6)"}, ++{0x00,0x44,0x60,0x98,0x34,0x3C,0x00,0x02,0x00,0x00,0x00, "Tokina", "", "AT-X 840 D (AF 80-400mm f/4.5-5.6)"}, ++{0x14,0x48,0x68,0x8E,0x30,0x30,0x0B,0x00,0x00,0x00,0x00, "Tokina", "", "AT-X 340 AF (AF 100-300mm f/4)"}, + //M "Tokina" "" "AT-X 340 AF-II (AF 100-300mm f/4)" + //M "Tokina" "" "AF 130 EMZ II (AF 100-300mm f/5.6-6.7)" + //M "Tokina" "" "AF 140 EMZ (AF 100-400mm f/4.5-6.3)" + // +-{0x00,0x00,0x00,0x00,0x00,0x00,0xF1,0x0C,0x00,0x00,0x00, "Kenko", "", "Teleplus PRO 300 DG 1.4x"}, +-{0x00,0x00,0x00,0x00,0x00,0x00,0xF2,0x18,0x00,0x00,0x00, "Kenko", "", "Teleplus PRO 300 DG 2.0x"}, +-// + //------------------------------------------------------------------------------ + // Lenses from various other brands + //------------------------------------------------------------------------------ +@@ -2448,14 +2463,21 @@ fmountlens[] = { + // + {0x00,0x54,0x56,0x56,0x30,0x30,0x00,0x00,0x00,0x00,0x00, "Coastal Optical Systems", "", "60mm 1:4 UV-VIS-IR Macro Apo"}, + // ++{0xBF,0x4E,0x26,0x26,0x1E,0x1E,0x01,0x04,0x00,0x00,0x00, "Irix", "", "15mm f/2.4 Firefly"}, ++{0xBF,0x3C,0x1B,0x1B,0x30,0x30,0x01,0x04,0x00,0x00,0x00, "Irix", "", "11mm f/4.0 Blackstone/Firefly"}, ++// + {0x4A,0x40,0x11,0x11,0x2C,0x0C,0x4D,0x02,0x00,0x00,0x00, "Samyang", "", "8mm f/3.5 Fish-Eye CS"}, ++{0x4A,0x48,0x24,0x24,0x24,0x0C,0x4D,0x02,0x00,0x02,0x00, "Samyang", "", "10mm f/2.8 ED AS NCS CS"}, + {0x4A,0x48,0x1E,0x1E,0x24,0x0C,0x4D,0x02,0x00,0x00,0x00, "Samyang", "", "12mm f/2.8 ED AS NCS Fish-eye"}, +-{0x4A,0x48,0x24,0x24,0x24,0x0C,0x4D,0x02,0x00,0x00,0x00, "Samyang", "", "AE 14mm f/2.8 ED AS IF UMC"}, ++{0x4A,0x4C,0x24,0x24,0x1E,0x6C,0x4D,0x06,0x00,0x00,0x00, "Samyang", "", "14mm f/2.4 Premium"}, ++{0x4A,0x48,0x24,0x24,0x24,0x0C,0x4D,0x02,0x00,0x01,0x00, "Samyang", "", "AE 14mm f/2.8 ED AS IF UMC"}, + {0x4A,0x54,0x29,0x29,0x18,0x0C,0x4D,0x02,0x00,0x00,0x00, "Samyang", "", "16mm F2.0 ED AS UMC CS"}, + {0x4A,0x60,0x36,0x36,0x0C,0x0C,0x4D,0x02,0x00,0x00,0x00, "Samyang", "", "24mm f/1.4 ED AS UMC"}, + {0x4A,0x60,0x44,0x44,0x0C,0x0C,0x4D,0x02,0x00,0x00,0x00, "Samyang", "", "35mm f/1.4 AS UMC"}, + {0x4A,0x60,0x62,0x62,0x0C,0x0C,0x4D,0x02,0x00,0x00,0x00, "Samyang", "", "AE 85mm f/1.4 AS IF UMC"}, + // ++{0x9A,0x4C,0x50,0x50,0x14,0x14,0x9C,0x06,0x00,0x00,0x00, "Yongnuo", "", "YN50mm F1.8N"}, ++// + {0x02,0x40,0x44,0x5C,0x2C,0x34,0x02,0x00,0x00,0x00,0x00, "Exakta", "", "AF 35-70mm 1:3.5-4.5 MC"}, + {0x07,0x3E,0x30,0x43,0x2D,0x35,0x03,0x00,0x00,0x00,0x00, "Soligor", "", "AF Zoom 19-35mm 1:3.5-4.5 MC"}, + {0x03,0x43,0x5C,0x81,0x35,0x35,0x02,0x00,0x00,0x00,0x00, "Soligor", "", "AF C/D Zoom UMCS 70-210mm 1:4.5"}, diff -Nru exiv2-0.25/debian/patches/git_20181223_e1e40ccc2836094d25452359c4dec7cd5149d7a0.patch exiv2-0.25/debian/patches/git_20181223_e1e40ccc2836094d25452359c4dec7cd5149d7a0.patch --- exiv2-0.25/debian/patches/git_20181223_e1e40ccc2836094d25452359c4dec7cd5149d7a0.patch 1970-01-01 00:00:00.000000000 +0000 +++ exiv2-0.25/debian/patches/git_20181223_e1e40ccc2836094d25452359c4dec7cd5149d7a0.patch 2019-03-07 18:20:23.000000000 +0000 @@ -0,0 +1,23 @@ +From e1e40ccc2836094d25452359c4dec7cd5149d7a0 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Mikael=20St=C3=A5ldal?= +Date: Sun, 23 Dec 2018 21:12:23 +0100 +Subject: [PATCH] Support Sony DSC-RX100M5A + +--- + src/sonymn.cpp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/sonymn.cpp b/src/sonymn.cpp +index 84bcadf4d..f4bee162d 100644 +--- a/src/sonymn.cpp ++++ b/src/sonymn.cpp +@@ -124,7 +124,8 @@ namespace Exiv2 { + { 354, "ILCA-99M2" }, + { 355, "DSC-RX10M3" }, + { 356, "DSC-RX100M5" }, +- { 357, "ILCE-6300" } ++ { 357, "ILCE-6300" }, ++ { 369, "DSC-RX100M5A" } + }; + + //! Lookup table to translate Sony dynamic range optimizer values to readable labels diff -Nru exiv2-0.25/debian/patches/series exiv2-0.25/debian/patches/series --- exiv2-0.25/debian/patches/series 2018-08-17 13:06:33.000000000 +0000 +++ exiv2-0.25/debian/patches/series 2019-03-07 18:20:23.000000000 +0000 @@ -10,6 +10,14 @@ CVE-2018-12265_prereq.patch CVE-2018-12265.patch CVE-2018-12264.patch +CVE-2017-11591.patch +CVE-2017-11683.patch +CVE-2017-14859_14862_14864.patch +CVE-2017-17669.patch +CVE-2018-17581.patch +CVE-2018-16336.patch +CVE-2018-16336-support-funcs.patch +CVE-2018-10958_10999-minor-fix.patch changeset_r3881.diff changeset_r3882.diff changeset_r3883_partial.diff @@ -44,7 +52,7 @@ changeset_r4152_partial.diff changeset_r4153_partial.diff changeset_r4154.diff -changeset_r4155.diff +#changeset_r4155.diff changeset_r4167.diff changeset_r4181_partial.diff changeset_r4182_partial.diff @@ -54,7 +62,7 @@ changeset_r4205.diff changeset_r4206.diff changeset_r4207.diff -changeset_r4210.diff +#changeset_r4210.diff changeset_r4211.diff changeset_r4212_partial.diff changeset_r4213.diff @@ -71,7 +79,7 @@ changeset_r4252.diff changeset_r4256.diff changeset_r4257.diff -changeset_r4269.diff +#changeset_r4269.diff changeset_r4278.diff changeset_r4279_partial.diff changeset_r4281_partial.diff @@ -122,7 +130,6 @@ changeset_r4746.diff changeset_r4747.diff git_20170920_97d7a04ea86d86b82e028b63bbe8aacef7b63a4f.patch -git_20171007_8a586c74bbe3fbca64e86e42a42282c73f427607.patch git_20171104_d48abab718585106e9851983b0dc49b8cc433c55.patch git_20180106_7d42da94d0f1ff7aed85e973a7aeea846034f3de.patch git_20180209_215227024d004d21c990e6831eb3a2cf4e069d41.patch @@ -131,3 +138,9 @@ git_20180506_d22fff4834d74feca2469129e883b7c50106b6a6.patch git_20180519_4e55af8691d4f8873c7179b33ee5e25e20335dab.patch git_20180702_b35903e4c83556c58d546d04dc73b4730de76415.patch +git_201809201_66f6f0bc1743b740802d33f2e9d9f450fc9cb681.patch +git_201809202_cdb14f22fdb468c3c36331e8088200c37d2b590c.patch +git_201809203_4f1a907792fbed08360447f5725bc1d677a040a8.patch +git_20181107_16201985684a4021c5f7a446434c1076e7409aed.patch +git_20181223_7eb67aabe4b428f096d3b286a54e82af0461234f.patch +git_20181223_e1e40ccc2836094d25452359c4dec7cd5149d7a0.patch