db xmldatapacketreader: fix range check error in InitLoadRecords

This commit is contained in:
Ondrej Pokorny 2022-05-03 12:01:07 +02:00 committed by Michael Van Canneyt
parent 8a64bddb20
commit 2093be8fc3

View File

@ -306,7 +306,8 @@ end;
procedure TXMLDatapacketReader.InitLoadRecords;
var ChangeLogStr : String;
i,cp : integer;
C, StartC : PChar;
cp : integer;
ps : string;
begin
@ -319,12 +320,17 @@ begin
ChangeLogStr:='';
ps := '';
cp := 0;
if ChangeLogStr<>'' then for i := 1 to length(ChangeLogStr)+1 do
begin
if not (ChangeLogStr[i] in [' ',#0]) then
ps := ps + ChangeLogStr[i]
else
if ChangeLogStr='' then
Exit;
C := PChar(ChangeLogStr);
StartC := C;
repeat
if (C^ in [' ',#0]) then
begin
SetLength(ps, C-StartC);
if Length(ps)>0 then
Move(StartC^, ps[1], C-StartC);
case (cp mod 3) of
0 : begin
SetLength(FChangeLog,length(FChangeLog)+1);
@ -340,10 +346,11 @@ begin
FChangeLog[cp div 3].UpdateKind:=ukModify;
end;
end; {case}
ps := '';
inc(cp);
StartC := C+1;
end;
end;
Inc(C);
until C^=#0;
end;
procedure TXMLDatapacketReader.RestoreRecord;