533: Applied patch 2_read_and_modify_only_the_first_XMP_segment (Michael Ulbrich, Volker Grabsch)

v0.27.3
Andreas Huggel 16 years ago
parent 5ef4c5ee22
commit 853fa64d4d

@ -284,6 +284,7 @@ namespace Exiv2 {
Blob iptcBlob;
bool foundPsData = false;
bool foundExifData = false;
bool foundXmpData = false;
// Read section marker
int marker = advanceToMarker();
@ -328,7 +329,8 @@ namespace Exiv2 {
--search;
foundExifData = true;
}
else if (marker == app1_ && memcmp(buf.pData_ + 2, xmpId_, 29) == 0) {
else if ( !foundXmpData
&& marker == app1_ && memcmp(buf.pData_ + 2, xmpId_, 29) == 0) {
if (size < 31) {
rc = 6;
break;
@ -345,6 +347,7 @@ namespace Exiv2 {
#endif
}
--search;
foundXmpData = true;
}
else if ( marker == app13_
&& memcmp(buf.pData_ + 2, Photoshop::ps3Id_, 14) == 0) {
@ -526,7 +529,8 @@ namespace Exiv2 {
io_->read(rawExif.pData_, rawExif.size_);
if (io_->error() || io_->eof()) throw Error(22);
}
else if (marker == app1_ && memcmp(buf.pData_ + 2, xmpId_, 29) == 0) {
else if ( skipApp1Xmp == -1
&& marker == app1_ && memcmp(buf.pData_ + 2, xmpId_, 29) == 0) {
if (size < 31) throw Error(22);
skipApp1Xmp = count;
++search;

Loading…
Cancel
Save