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);