From 1f5bc3b8a558f2d1935a57d469a492fbc937c912 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Milo=C5=A1=20Komar=C4=8Devi=C4=87?= <4973094+kmilos@users.noreply.github.com> Date: Tue, 25 Oct 2022 16:30:45 +0200 Subject: [PATCH] Avoid buffer reallocation (#2392) --- src/bmffimage.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/bmffimage.cpp b/src/bmffimage.cpp index 9ff9dc1f..8aa38e8a 100644 --- a/src/bmffimage.cpp +++ b/src/bmffimage.cpp @@ -521,10 +521,8 @@ uint64_t BmffImage::boxHandler(std::ostream& out /* = std::cout*/, Exiv2::PrintS Internal::TiffParserWorker::decode(exifData(), iptcData(), xmpData(), arr.c_data(offset), arr.size() - offset, Internal::Tag::root, Internal::TiffMapping::findDecoder); } else if (realType == TAG_xml) { - arr.resize(arr.size() + 1); - arr.write_uint8(arr.size() - 1, 0); // ensure xmp is null terminated! try { - Exiv2::XmpParser::decode(xmpData(), std::string(arr.c_str())); + Exiv2::XmpParser::decode(xmpData(), std::string(arr.c_str(), arr.size())); } catch (...) { throw Error(ErrorCode::kerFailedToReadImageData); }