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

This commit is contained in:
marcoonthegit 2022-06-05 17:46:58 +02:00
parent c4be74abf3
commit 2df9dd9c14

View File

@ -327,7 +327,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;
@ -386,7 +386,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;