[Scummvm-tracker] [ScummVM :: Bugs] #15305: GLK: Crash when saving a game

ScummVM :: Bugs trac at scummvm.org
Thu Aug 1 10:07:47 UTC 2024


#15305: GLK: Crash when saving a game
----------------------------+---------------------------------
Reporter:  neuromancer      |      Owner:  dreammaster
    Type:  defect           |     Status:  new
Priority:  normal           |  Component:  Engine: GLK: Glulxe
 Version:                   |   Keywords:
    Game:  GLK GLULXE Game  |
----------------------------+---------------------------------
 To reproduce (I'm using 78ee37a1e305fa516d88089f7165271ff0cdb9a6):

 1. Download Toby's Nose: https://ifdb.org/viewgame?id=xf5y04yekcrqtnc
 2. Add it and start the game
 3. Press Ctrl + F5 and save the game.

 It crashes:

 {{{
 Thread 1 "scummvm" received signal SIGSEGV, Segmentation fault.
 0x00005555647dbf1c in Glk::Glulx::Glulx::write_stackstate
 (this=0x51e000207c80, dest=0x7fffeed484d0, portable=1) at
 engines/glk/glulx/serial.cpp:687
 687                             frm != 0 && (frm2 = Stk4(frm - 4)) !=
 lastframe;
 (gdb) bt
 #0  0x00005555647dbf1c in Glk::Glulx::Glulx::write_stackstate
 (this=0x51e000207c80, dest=0x7fffeed484d0, portable=1) at
 engines/glk/glulx/serial.cpp:687
 #1  0x00005555647d5a56 in Glk::Glulx::Glulx::saveGameChunks
 (this=0x51e000207c80, quetzal=...) at engines/glk/glulx/serial.cpp:331
 #2  0x0000555564b2ed4a in Glk::GlkEngine::saveGameState
 (this=0x51e000207c80, slot=3, desc=..., isAutosave=false) at
 engines/glk/glk.cpp:218
 #3  0x0000555565a13d74 in MainMenuDialog::save (this=0x5100000d9040) at
 engines/dialogs.cpp:219
 #4  0x0000555565a0c9a3 in MainMenuDialog::handleCommand
 (this=0x5100000d9040, sender=0x5160008eb518, cmd=1396790853, data=0) at
 engines/dialogs.cpp:113
 #5  0x0000555565b32549 in GUI::CommandSender::sendCommand
 (this=0x5160008eb518, cmd=1396790853, data=0) at ./gui/object.h:54
 #6  0x0000555565ea0571 in GUI::ButtonWidget::handleMouseUp
 (this=0x5160008eb380, x=259, y=26, button=1, clickCount=1) at
 gui/widget.cpp:408
 #7  0x0000555565af69c9 in GUI::Dialog::handleMouseUp (this=0x5100000d9040,
 x=397, y=476, button=1, clickCount=1) at gui/dialog.cpp:233
 #8  0x0000555565b2bb90 in GUI::GuiManager::processEvent
 (this=0x51d0000bcc80, event=..., activeDialog=0x5100000d9040) at gui/gui-
 manager.cpp:892
 #9  0x0000555565b194f4 in GUI::GuiManager::runLoop (this=0x51d0000bcc80)
 at gui/gui-manager.cpp:594
 #10 0x0000555565aef506 in GUI::Dialog::runModal (this=0x5100000d9040) at
 gui/dialog.cpp:78
 #11 0x0000555565a469e4 in Engine::runDialog (this=0x51e000207c80,
 dialog=...) at engines/engine.cpp:811
 #12 0x0000555565a41a7d in Engine::openMainMenuDialog (this=0x51e000207c80)
 at engines/engine.cpp:724
 #13 0x00005555661b1cc4 in DefaultEventManager::pollEvent
 (this=0x50d000007540, event=...) at backends/events/default/default-
 events.cpp:149
 #14 0x0000555564b1b634 in Glk::Events::pollEvents (this=0x511000081000) at
 engines/glk/events.cpp:183
 #15 0x0000555564b19a15 in Glk::Events::getEvent (this=0x511000081000,
 event=0x7fffeee8a900, polled=false) at engines/glk/events.cpp:126
 #16 0x0000555564b420f0 in Glk::GlkAPI::glk_select (this=0x51e000207c80,
 event=0x7fffeee8a900) at engines/glk/glk_api.cpp:689
 #17 0x00005555652a2f06 in Glk::GlkAPI::gidispatch_call
 (this=0x51e000207c80, funcnum=192, numargs=5, arglist=0x50e000222900) at
 engines/glk/glk_dispa.cpp:815
 #18 0x0000555564e38b28 in Glk::Glulx::Glulx::perform_glk
 (this=0x51e000207c80, funcnum=192, numargs=1,
     arglist=0x55557cb94640 <Glk::Glulx::Glulx::pop_arguments(unsigned int,
 unsigned int)::statarray>) at engines/glk/glulx/glkop.cpp:215
 #19 0x0000555564e1ee7f in Glk::Glulx::Glulx::execute_loop
 (this=0x51e000207c80) at engines/glk/glulx/exec.cpp:638
 #20 0x00005555647ca0bb in Glk::Glulx::Glulx::runGame (this=0x51e000207c80)
 at engines/glk/glulx/glulx.cpp:68
 #21 0x0000555564b2c69d in Glk::GlkEngine::run (this=0x51e000207c80) at
 engines/glk/glk.cpp:148
 #22 0x0000555562c84416 in runGame (enginePlugin=0x50300000ca90,
 system=..., game=..., meDescriptor=0x50d000031c80) at base/main.cpp:311
 #23 0x0000555562c91a71 in scummvm_main (argc=4, argv=0x7fffffffe7b8) at
 base/main.cpp:796
 #24 0x0000555562c73c97 in main (argc=4, argv=0x7fffffffe7b8) at
 backends/platform/sdl/posix/posix-main.cpp:44
 }}}

 The same will happen if the autosave is triggered.
-- 
Ticket URL: <https://bugs.scummvm.org/ticket/15305>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM


More information about the Scummvm-tracker mailing list