Browse Source

* Fix bug #37852, possible memleak

git-svn-id: trunk@47343 -
michael 4 years ago
parent
commit
74b533f167
1 changed files with 9 additions and 6 deletions
  1. 9 6
      packages/fcl-db/src/sqldb/interbase/fbadmin.pp

+ 9 - 6
packages/fcl-db/src/sqldb/interbase/fbadmin.pp

@@ -392,13 +392,16 @@ end;
 
 
 destructor TFBAdmin.Destroy;
 destructor TFBAdmin.Destroy;
 begin
 begin
-  if FSvcHandle<>FB_API_NULLHANDLE then
-  begin
-    WaitInterval:=100;
-    DisConnect;
+  try
+    if FSvcHandle<>FB_API_NULLHANDLE then
+    begin
+      WaitInterval:=100;
+      DisConnect; // This can raise an exception
+    end;
+  Finally
+    FOutput.Destroy;
+    inherited Destroy;
   end;
   end;
-  FOutput.Destroy;
-  inherited Destroy;
 end;
 end;
 
 
 function TFBAdmin.Connect: boolean;
 function TFBAdmin.Connect: boolean;