diff options
author | Andreas Sturmlechner <asturm@gentoo.org> | 2018-12-25 15:33:32 +0100 |
---|---|---|
committer | Andreas Sturmlechner <asturm@gentoo.org> | 2018-12-25 22:23:19 +0100 |
commit | da7926182391bd95b006f7fc6ac44cac3e54bf40 (patch) | |
tree | 7614c8f34009399477241f4672d13e992ab58f46 /media-gfx/exiv2/files | |
parent | profiles: Mask media-gfx/exiv2-0.27.0 (diff) | |
download | gentoo-da7926182391bd95b006f7fc6ac44cac3e54bf40.tar.gz gentoo-da7926182391bd95b006f7fc6ac44cac3e54bf40.tar.bz2 gentoo-da7926182391bd95b006f7fc6ac44cac3e54bf40.zip |
media-gfx/exiv2: 0.27.0 version bump
Package-Manager: Portage-2.3.52, Repoman-2.3.12
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
Diffstat (limited to 'media-gfx/exiv2/files')
-rw-r--r-- | media-gfx/exiv2/files/exiv2-0.27.0-png-broken-icc-profile.patch | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/media-gfx/exiv2/files/exiv2-0.27.0-png-broken-icc-profile.patch b/media-gfx/exiv2/files/exiv2-0.27.0-png-broken-icc-profile.patch new file mode 100644 index 000000000000..ae0a0ee30dce --- /dev/null +++ b/media-gfx/exiv2/files/exiv2-0.27.0-png-broken-icc-profile.patch @@ -0,0 +1,34 @@ +diff --git a/src/pngimage.cpp b/src/pngimage.cpp +index 90844d09..b5b0cd24 100644 +--- a/src/pngimage.cpp ++++ b/src/pngimage.cpp +@@ -501,7 +501,20 @@ namespace Exiv2 { + } + else if (!memcmp(cheaderBuf.pData_ + 4, "iCCP", 4)) + { +- zlibToDataBuf(cdataBuf.pData_ +12+1,dataOffset-13,iccProfile_); // +1 = 'compressed' flag ++ // The ICC profile name can vary from 1-79 characters. ++ uint32_t iccOffset = 0; ++ while (iccOffset < 80 && iccOffset < dataOffset) { ++ ++ const byte* profileName = cdataBuf.pData_ + iccOffset; ++ ++iccOffset; ++ ++ if (*profileName == 0x00) ++ break; ++ } ++ ++ ++iccOffset; // +1 = 'compressed' flag ++ ++ zlibToDataBuf(cdataBuf.pData_ +iccOffset,dataOffset-iccOffset,iccProfile_); + #ifdef DEBUG + std::cout << "Exiv2::PngImage::readMetadata: Found iCCP chunk length: " << dataOffset << std::endl; + std::cout << "Exiv2::PngImage::readMetadata: iccProfile.size_ : " << iccProfile_.size_ << std::endl; +@@ -662,6 +675,7 @@ namespace Exiv2 { + + // calculate CRC + uLong tmp = crc32(0L, Z_NULL, 0); ++ tmp = crc32(tmp, (const Bytef*)type ,typeLen); + tmp = crc32(tmp, (const Bytef*)header ,headerLen); + tmp = crc32(tmp, (const Bytef*)compressed.pData_,compressed.size_); + byte crc[4]; |