Erroneous finalizing of const widestring array

Original Reporter info from Mantis: mse
  • Reporter name: Martin Schreiber

Description:

Erroneous finalizing of const widestring array, gdb output:
"
warning: HEAP[finalizewidestringconst.exe]:
warning: Invalid Address specified to RtlSizeHeap( 70000, 4128f4 )

Program received signal SIGTRAP, Trace/breakpoint trap.
$77897705 in ?? ()
(gdb)
"
The signal is in SysFreeString, stacktrace:

#0  00405571 wstrings.inc:188 DISPOSEWIDESTRING(S=(POINTER) $4128f8)
#1  004055BE wstrings.inc:225 fpc_widestr_decr_ref(S=(POINTER) $4128f8)
#2  0040679D rtti.inc:156 fpc_finalize(DATA=(POINTER) $41299c, TYPEINFO=(POINTER) $4115ec)
#3  00406729 rtti.inc:126 ARRAYRTTI(DATA=(POINTER) $412980, TYPEINFO=(POINTER) $4129c0, RTTIPROC=(TRTTIPROC) $406740 <fpc_finalize>)
#4  004067B8 rtti.inc:160 fpc_finalize(DATA=(POINTER) $412980, TYPEINFO=(POINTER) $4129c0)
#5  00410CF2 constunit.pas:35 CONSTUNIT_finalize()
#6  0040696F system.inc:687 FINALIZEUNITS()
#7  004069D8 system.inc:723 INTERNALEXIT()
#8  00406B78 system.inc:769 DO_EXIT()
#9  0040142D finalizewidestringconst.pas:8 main()

Mantis conversion info:

  • Mantis ID: 9170
  • Platform: win32
  • Version: 2.2.0
  • Fixed in version: 2.2.0
  • Fixed in revision: 7927 (#1d82c8c5)
  • Monitored by: » Daniel (Daniël Mantione)