Topic: missed range check
function TSqlitePassAnsiStringList.Get(Index: Integer): AnsiString;
begin
Result := FList^[Index].FString;
end;
procedure TSqlitePassAnsiStringList.Put(Index: Integer; const S: AnsiString);
begin
FList^[Index].FString := S;
end;
function TSqlitePassWideStringList.Get(Index: Integer): UTF16WideString;
begin
Result := FList^[Index].FWideString;
end;
procedure TSqlitePassWideStringList.Put(Index: Integer; const S: UTF16WideString);
begin
FList^[Index].FWideString := S;
end;
---------------
I'am add this line:
if (Index < 0) or (Index >= FCount) then Error(SListIndexError, Index);