From 600eb0d3dd4de9f3670cece4e1cbd8cfcaf2e19a Mon Sep 17 00:00:00 2001 From: draekko Date: Sat, 20 Aug 2016 00:33:23 +0000 Subject: [PATCH] #1199 Fixed issue with -ix, wasnt padding odd sized chunks for exif/xmp. --- src/webpimage.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/webpimage.cpp b/src/webpimage.cpp index 5472a43d..c2bd2632 100644 --- a/src/webpimage.cpp +++ b/src/webpimage.cpp @@ -380,6 +380,11 @@ namespace Exiv2 { { throw Error(21); } + if ((long)blob.size() % 2) { + byte c = 0; + if (outIo.write(&c, 1) != 1) + throw Error(21); + } } if (has_xmp) { @@ -390,11 +395,17 @@ namespace Exiv2 { if (outIo.write((const byte*)xmpPacket().data(), static_cast(xmpPacket().size())) != (long)xmpPacket().size()) { throw Error(21); } + if ((long)xmpPacket().size() % 2) { + byte c = 0; + if (outIo.write(&c, 1) != 1) + throw Error(21); + } } // Fix File Size Payload Data outIo.seek(0, BasicIo::beg); filesize = outIo.size() - 8; + std::cout << "size " << filesize << std::endl; outIo.seek(4, BasicIo::beg); ul2Data(data, (uint32_t) filesize, littleEndian); if (outIo.write(data, 4) != 4) throw Error(21);