Merge pull request #2551 from kevinbackhouse/fix-issue-2539

Minor refactorings to stop UBSAN from complaining
main
Rosen Penev 2 years ago committed by GitHub
commit 4831c65e39
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -295,7 +295,6 @@ void TiffImageEntry::setStrips(const Value* pSize, const byte* pData, size_t siz
} }
for (size_t i = 0; i < pValue()->count(); ++i) { for (size_t i = 0; i < pValue()->count(); ++i) {
const size_t offset = pValue()->toUint32(i); const size_t offset = pValue()->toUint32(i);
const byte* pStrip = pData + baseOffset + offset;
const size_t size = pSize->toUint32(i); const size_t size = pSize->toUint32(i);
if (size > sizeData || offset > sizeData - size || baseOffset > sizeData - size - offset) { if (size > sizeData || offset > sizeData - size || baseOffset > sizeData - size - offset) {
@ -304,6 +303,7 @@ void TiffImageEntry::setStrips(const Value* pSize, const byte* pData, size_t siz
<< tag() << ": Strip " << std::dec << i << " is outside of the data area; ignored.\n"; << tag() << ": Strip " << std::dec << i << " is outside of the data area; ignored.\n";
#endif #endif
} else if (size != 0) { } else if (size != 0) {
const byte* pStrip = pData + baseOffset + offset;
strips_.emplace_back(pStrip, size); strips_.emplace_back(pStrip, size);
} }
} }

@ -1316,7 +1316,7 @@ void TiffReader::readTiffEntry(TiffEntryBase* object) {
<< size << size
<< ", exceeds buffer size by " << ", exceeds buffer size by "
// cast to make MSVC happy // cast to make MSVC happy
<< static_cast<size_t>(pData + size - pLast_) << " Bytes; truncating the entry\n"; << size - static_cast<size_t>(pLast_ - pData) << " Bytes; truncating the entry\n";
#endif #endif
size = 0; size = 0;
} }

Loading…
Cancel
Save