From a5cf99deb1eb0609691c6e58bbf59f73190cd31a Mon Sep 17 00:00:00 2001 From: Ansgar Becker Date: Fri, 16 Jan 2009 23:35:44 +0000 Subject: [PATCH] Fix bug #944: List index out of bounds in query helpers --- source/main.pas | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/source/main.pas b/source/main.pas index 65953088..eb38737d 100644 --- a/source/main.pas +++ b/source/main.pas @@ -5830,7 +5830,7 @@ end; procedure TMainForm.tabsetQueryHelpersChange(Sender: TObject; NewTab: Integer; var AllowChange: Boolean); var - i : Integer; + i, idx : Integer; SnippetsAccessible : Boolean; Files: TStringList; begin @@ -5896,12 +5896,10 @@ begin end; // Restore last selected item in tab - if (Length(QueryHelpersSelectedItems[NewTab]) > 0) - and (Length(QueryHelpersSelectedItems[NewTab]) <= lboxQueryHelpers.Count) then - begin - for i := 0 to Length(QueryHelpersSelectedItems[NewTab]) - 1 do begin - lboxQueryHelpers.Selected[QueryHelpersSelectedItems[NewTab][i]] := True; - end; + for i := 0 to Length(QueryHelpersSelectedItems[NewTab]) - 1 do begin + idx := QueryHelpersSelectedItems[NewTab][i]; + if idx < lboxQueryHelpers.Count then + lboxQueryHelpers.Selected[idx] := True; end; lboxQueryHelpers.Items.EndUpdate;