diff --git a/packages/rtl-objpas/src/inc/strutils.pp b/packages/rtl-objpas/src/inc/strutils.pp index 689e3463d3..e01323b13b 100644 --- a/packages/rtl-objpas/src/inc/strutils.pp +++ b/packages/rtl-objpas/src/inc/strutils.pp @@ -3076,6 +3076,10 @@ procedure BinToHex(const BinBuffer: TBytes; BinBufOffset: Integer; var HexBuffer var i : longint; begin + if (Length(HexBuffer)-HexBufOffset) div 2 < Count then + Count:=(Length(HexBuffer)-HexBufOffset) div 2; + if (Length(BinBuffer)-BinBufOffset) < Count then + Count:=Length(BinBuffer)-BinBufOffset; for i:=0 to Count-1 do begin HexBuffer[HexBufOffset+2*i+0]:=Byte(HexDigits[(BinBuffer[BinBufOffset + i] shr 4)]); @@ -3113,7 +3117,12 @@ begin PText:=HexText+HexTextOffset; PBinBuf:=PAnsiChar(BinBuffer)+BinBufOffset; i:=Count; - Result:=HexToBin(PText, PBinBuf, i); + if (Length(BinBuffer)-BinBufOffset)