libretro / bsnes2014

Libretro fork of bsnes. As close to upstream as possible.
GNU General Public License v3.0
9 stars 17 forks source link

saving state when playing SGB games crashes the core #9

Open andres-asm opened 9 years ago

andres-asm commented 9 years ago

At least that's what I was able to determine, it's crashing after RA calls retro_serialize(data, size);

orbea commented 5 years ago

Here is a backtrace.

double free or corruption (out)

Thread 1 "retroarch" received signal SIGABRT, Aborted.
0x00007ffff475a6db in raise () from /lib64/libc.so.6
(gdb) bt
#0  0x00007ffff475a6db in raise () from /lib64/libc.so.6
#1  0x00007ffff475bd21 in abort () from /lib64/libc.so.6
#2  0x00007ffff47a3cc7 in __libc_message () from /lib64/libc.so.6
#3  0x00007ffff47aadea in malloc_printerr () from /lib64/libc.so.6
#4  0x00007ffff47b2202 in free () from /lib64/libc.so.6
#5  0x00007fffe8f3dc58 in nall::serializer::~serializer (this=0x7fffffffd720,
    __in_chrg=<optimized out>) at ./nall/serializer.hpp:138
#6  0x00007fffe8fe38da in retro_serialize (data=0x35d54f0, size=485607)
    at target-libretro/libretro.cpp:526
#7  0x0000000000413b7c in core_serialize (info=0x7fffffffd790) at core_impl.c:339
#8  0x0000000000433f8e in get_serialized_data (
    path=0x3569e30 "/media/data/home/games/roms/.saves/retroarch/.sstates/bsnes/Pokemon - Red Version (USA, Europe) + Super Game Boy (World) (Rev 2).state",
    serial_size=485607) at tasks/task_save.c:577
#9  0x0000000000435520 in content_save_state (
    path=0x3569e30 "/media/data/home/games/roms/.saves/retroarch/.sstates/bsnes/Pokemon - Red Version (USA, Europe) + Super Game Boy (World) (Rev 2).state",
    save_to_disk=true, autosave=false) at tasks/task_save.c:1195
#10 0x000000000041e67c in command_event_main_state (cmd=10) at command.c:1716
#11 0x000000000041ebea in command_event (cmd=CMD_EVENT_SAVE_STATE, data=0x0)
    at command.c:1983
#12 0x000000000060259e in generic_action_ok_command (cmd=CMD_EVENT_SAVE_STATE)
    at menu/cbs/menu_cbs_ok.c:1245
#13 0x0000000000606bce in action_ok_save_state (path=0x3561040 "Save State",
    label=0x3561020 "savestate", type=134, idx=5, entry_idx=0)
    at menu/cbs/menu_cbs_ok.c:3169
#14 0x00000000005ff670 in menu_entry_action (entry=0x7fffffffdd00, i=5,
    action=MENU_ACTION_OK) at menu/widgets/menu_entry.c:455
#15 0x000000000064aaa4 in generic_menu_iterate (menu=0x13c43d0,
    userdata=0x1398d40, action=MENU_ACTION_OK) at menu/drivers/menu_generic.c:232
#16 0x00000000005dc9fd in menu_driver_iterate (iterate=0x7fffffffdec0)
    at menu/menu_driver.c:2011
#17 0x0000000000418523 in runloop_check_state (settings=0x7fffefe3d010,
    input_nonblock_state=false, sleep_ms=0x7fffffffe0f0) at retroarch.c:2860
#18 0x000000000041978c in runloop_iterate (sleep_ms=0x7fffffffe0f0)
    at retroarch.c:3565
#19 0x0000000000412717 in rarch_main (argc=1, argv=0x7fffffffe208, data=0x0)
    at frontend/frontend.c:141
#20 0x0000000000412774 in main (argc=1, argv=0x7fffffffe208)
    at frontend/frontend.c:170

Full GDB log - https://pastebin.com/zJsfe6Wf