Page 1 of 1

Possible Double Free during cleanup

Posted: 21.07.2006, 12:14
by rik
Hi,

I'm working with 6.5.1 (alpha) and Firebird 1.5.3

I've had bug reports from a couple of clients of what looks like double frees during the clean up of the TZConnection.

Here's the relevant part of the bug report:

exception class : EAccessViolation
exception message : Access violation at address 005C737A. Read of address FFFFFFFF.

main thread ($ffc):
005c737a +00 ???
3040421c +08 MPSpare.exe System TObject.Free
3058cad9 +4d MPSpare.exe ZTokenizer 745 +4 TZSymbolNode.Destroy
3040421c +08 MPSpare.exe System TObject.Free
3058d13b +17 MPSpare.exe ZTokenizer 955 +1 TZSymbolState.Destroy
3040421c +08 MPSpare.exe System TObject.Free
3058d540 +74 MPSpare.exe ZTokenizer 1142 +8 TZTokenizer.Destroy
304073dd +1d MPSpare.exe System TInterfacedObject._Release
304072e8 +10 MPSpare.exe System @IntfClear
30405f07 +bf MPSpare.exe System @FinalizeArray
30405e1c +20 MPSpare.exe System @FinalizeRecord
3040428a +12 MPSpare.exe System TObject.CleanupInstance
304041cd +05 MPSpare.exe System TObject.FreeInstance
304045de +02 MPSpare.exe System @ClassDestroy
305ac670 +28 MPSpare.exe ZDbcConnection 234 +1 TZAbstractDriver.Destroy
304073dd +1d MPSpare.exe System TInterfacedObject._Release
304072e8 +10 MPSpare.exe System @IntfClear
3060c64e +3a MPSpare.exe ZDbcInterbase6 761 +2 Finalization
30404d48 +44 MPSpare.exe System FinalizeUnits
3042d45c +54 MPSpare.exe madExcept InterceptFinalizeUnits
30405021 +59 MPSpare.exe System @Halt0
306bf68c +40 MPSpare.exe MPSpare 56 +4 initialization

Worth switching to FreeAndNil() throughout the cleanup, maybe?