crashes due to change in fpc_dynarray_decr_ref()
Original Reporter info from Mantis: werner.bochtler@zkrd.de
-
Reporter name: Werner Bochtler
Original Reporter info from Mantis: werner.bochtler@zkrd.de
- Reporter name: Werner Bochtler
Description:
In one of the last revisions a 'begin/end' was added in function fpc_dynarray_decr_ref (rtl/inc/dynarr.inc)
This change seems to be responsible for crashes in one of my shared libraries. Unfortunately it seems that the problem occurs only in the context of a special memory/register situation. Therefore I was not able to create a demo application to show the problem.
I have attached the function SplitSDF() in which the crash happens and I have
marked the exact position.
Additionally I have added the gdb info stack.
Without the "begin/end" the library works fine again.
OS: LINUX 32 bit (i386)
Additional information:
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1210029888 (LWP 28094)]
0x0805e718 in SYSTEM_SYSGETMEM_FIXED$LONGWORD$$POINTER ()
(gdb) info stack
#0 0x0805e718 in SYSTEM_SYSGETMEM_FIXED$LONGWORD$$POINTER ()
#1 0x0805e8fb in SYSTEM_SYSGETMEM$LONGWORD$$POINTER ()
#2 0x0805d7a7 in SYSTEM_GETMEM$POINTER$LONGWORD ()
#3 0x08057d25 in fpc_dynarray_setlength ()
#4 0x080ce494 in UTILSLIB_SPLITSDF$ANSISTRING$CHAR$$TSTRINGDYNARRAY ()
#5 0x080970a3 in HLAMATCHMAIN___GETAGBNDDOM$ANSISTRING$$ANSISTRING ()
#6 0x0809b367 in HLAMATCHMAIN___GETLOCUSDATA$crcA7A0ADF5 ()
#7 0x080b3b17 in HLAMATCHMAIN___GETMATCHSTRING$crc3CCD6B3B ()
#8 0x08095e0e in HAMATCHMAIN__HM_GET_MATCH_STRING$LONGINT$$PCHAR ()
#9 0x08049fa7 in main ()
Mantis conversion info:
- Mantis ID: 12048
- Version: 2.3.1
- Fixed in version: 2.2.4
- Fixed in revision: 12149 (#9cf3a14a)