ReinhardPrix / FreedroidClassic

The original Freedroid, a free & open-source clone of the C64 classic 'Paradroid'.
GNU General Public License v2.0
39 stars 6 forks source link

editor: crash: memcpy-param-overlap #19

Open matthiaskrgr opened 6 years ago

matthiaskrgr commented 6 years ago

open editor move center rectangle over a bot waypoint press "p" key => boom

=================================================================
==5413==ERROR: AddressSanitizer: memcpy-param-overlap: memory ranges [0x625000050a4c,0x625000050d24) and [0x625000050a84, 0x625000050d5c) overlap
    #0 0x311f68 in __asan_memcpy /home/matthias/LLVM/LLVM6/stage_2/llvm/projects/compiler-rt/lib/asan/asan_interceptors_memintrinsics.cc:23:3
    #1 0x38c295 in DeleteWaypoint /tmp/FreedroidClassic/src/level_editor.c:508:5
    #2 0x387edc in LevelEditor /tmp/FreedroidClassic/src/level_editor.c:350:6
    #3 0x3a0252 in handle_OpenLevelEditor /tmp/FreedroidClassic/src/menu.c:465:5
    #4 0x3a31f5 in ShowMenu /tmp/FreedroidClassic/src/menu.c:901:13
    #5 0x3a278d in showMainMenu /tmp/FreedroidClassic/src/menu.c:695:3
    #6 0x37eac9 in ReactToSpecialKeys /tmp/FreedroidClassic/src/input.c:370:5
    #7 0x38ec47 in main /tmp/FreedroidClassic/src/main.c:125:4
    #8 0x7fd59225f222 in __libc_start_main (/usr/lib/libc.so.6+0x24222)
    #9 0x27002d in _start (/tmp/FreedroidClassic/src/freedroid+0x27002d)
0x625000050a4c is located 2380 bytes inside of 7984-byte region [0x625000050100,0x625000052030)
allocated by thread T0 here:
    #0 0x31326a in __interceptor_calloc /home/matthias/LLVM/LLVM6/stage_2/llvm/projects/compiler-rt/lib/asan/asan_malloc_linux.cc:97:3
    #1 0x3a86b1 in MyMalloc /tmp/FreedroidClassic/src/misc.c:1086:15
    #2 0x391a90 in LevelToStruct /tmp/FreedroidClassic/src/map.c:558:23
    #3 0x3916d9 in LoadShip /tmp/FreedroidClassic/src/map.c:287:30
    #4 0x378133 in InitNewMission /tmp/FreedroidClassic/src/init.c:689:8
    #5 0x38d622 in main /tmp/FreedroidClassic/src/main.c:86:7
    #6 0x7fd59225f222 in __libc_start_main (/usr/lib/libc.so.6+0x24222)
0x625000050a84 is located 2436 bytes inside of 7984-byte region [0x625000050100,0x625000052030)
allocated by thread T0 here:
    #0 0x31326a in __interceptor_calloc /home/matthias/LLVM/LLVM6/stage_2/llvm/projects/compiler-rt/lib/asan/asan_malloc_linux.cc:97:3
    #1 0x3a86b1 in MyMalloc /tmp/FreedroidClassic/src/misc.c:1086:15
    #2 0x391a90 in LevelToStruct /tmp/FreedroidClassic/src/map.c:558:23
    #3 0x3916d9 in LoadShip /tmp/FreedroidClassic/src/map.c:287:30
    #4 0x378133 in InitNewMission /tmp/FreedroidClassic/src/init.c:689:8
    #5 0x38d622 in main /tmp/FreedroidClassic/src/main.c:86:7
    #6 0x7fd59225f222 in __libc_start_main (/usr/lib/libc.so.6+0x24222)
SUMMARY: AddressSanitizer: memcpy-param-overlap /home/matthias/LLVM/LLVM6/stage_2/llvm/projects/compiler-rt/lib/asan/asan_interceptors_memintrinsics.cc:23:3 in __asan_memcpy
==5413==ABORTING
matthiaskrgr commented 6 years ago

There's probably a problem when we try to remove a waypoint that is referenced to (has a connection) by another waypoint.