mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-16 16:29:29 +02:00
db xmldatapacketreader: fix range check error in InitLoadRecords
This commit is contained in:
parent
8a64bddb20
commit
2093be8fc3
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user