* another fix for bug #39758, this time the end of the string

(cherry picked from commit 2df9dd9c14)
This commit is contained in:
marcoonthegit 2022-06-05 17:46:58 +02:00
parent 745e109411
commit 47e90d7dda

View File

@ -328,7 +328,7 @@ function TEncoding.GetByteCount(const S: UnicodeString; CharIndex, CharCount: In
begin
if (CharIndex < 1) then
raise EEncodingError.CreateFmt(SCharacterIndexOutOfBounds, [CharIndex]);
if (CharCount < 0) or (Length(S) < CharCount + CharIndex) then
if (CharCount < 0) or (Length(S) < CharCount + CharIndex - 1) then
raise EEncodingError.CreateFmt(SInvalidCount, [CharCount]);
Result := GetByteCount(@S[CharIndex], CharCount);
end;
@ -387,7 +387,7 @@ begin
raise EEncodingError.CreateFmt(SInvalidDestinationIndex, [ByteIndex]);
if (CharIndex < 1) then
raise EEncodingError.CreateFmt(SCharacterIndexOutOfBounds, [CharIndex]);
if (CharCount < 0) or (Length(S) < CharCount + CharIndex) then
if (CharCount < 0) or (Length(S) < CharCount + CharIndex - 1) then
raise EEncodingError.CreateFmt(SInvalidCount, [CharCount]);
Result := GetBytes(@S[CharIndex], CharCount, @Bytes[ByteIndex], ByteLen - ByteIndex);
end;