C++: fix parser bug in structured logic

The bug was already fixed in the parseonly code, but not in the
generic structured code.
backup
Christian Seiler 2 weeks ago
parent 2a96abf2a1
commit 4b4febb3ea
  1. 3
      cpp/src/monoformat_structured.cpp

@ -1513,6 +1513,9 @@ std::expected<std::unique_ptr<ClippedTextElement>, ParseError> ClippedTextElemen
return std::unexpected(textLength.error()); return std::unexpected(textLength.error());
} }
std::size_t alignedRoundedUp = (*textLength + 2 + 4 - 1) / 4 * 4 - 2; std::size_t alignedRoundedUp = (*textLength + 2 + 4 - 1) / 4 * 4 - 2;
if (formatVersion >= 2) {
alignedRoundedUp = (*textLength + 4 - 1) / 4 * 4;
}
auto textData = readBuffer(buffer, alignedRoundedUp); auto textData = readBuffer(buffer, alignedRoundedUp);
if (!textData) { if (!textData) {
return std::unexpected(textData.error()); return std::unexpected(textData.error());

Loading…
Cancel
Save