Opened 4 years ago

Closed 4 years ago

#6999 closed defect (fixed)

SWORD25: Segfault on loading Broken Sword 2.5 savegame

Reported by: SF/jupi Owned by: wjp
Priority: blocker Component: Engine: Sword25
Keywords: Cc:
Game: Broken Sword 2.5

Description

scummvm (current git revision 1.8.0git6246-g75d1385) segfaults on attempting to load a Broken Sword 2.5 savegame.
gdb traces the fault as follows:

#0  0x0000000001259a46 in pushstr (L=0x2724140, str=0x1dc3cf0 "") at engines/sword25/util/lua/lobject.cpp:101
#1  0x0000000001259adf in luaO_pushvfstring (L=0x2724140, fmt=0x1dc3998 "memory allocation error: block too big", argp=0x7ffffffb7268) at engines/sword25/util/lua/lobject.cpp:109
#2  0x00000000012530d9 in luaG_runerror (L=0x2724140, fmt=0x1dc3998 "memory allocation error: block too big") at engines/sword25/util/lua/ldebug.cpp:613
#3  0x0000000001258afd in luaM_toobig (L=0x2724140) at engines/sword25/util/lua/lmem.cpp:65
#4  0x00000000012535f8 in luaD_reallocstack (L=0x2724140, newsize=-872415236) at engines/sword25/util/lua/ldo.cpp:169
#5  0x0000000001253770 in luaD_growstack (L=0x2724140, n=2) at engines/sword25/util/lua/ldo.cpp:189
#6  0x000000000124d4e2 in lua_checkstack (L=0x2724140, size=2) at engines/sword25/util/lua/lapi.cpp:103
#7  0x000000000126b22f in Lua::unpersist (info=0x7ffffffb7810) at engines/sword25/util/lua_unpersist.cpp:136
#8  0x000000000126ba6d in Lua::unpersistThread (info=0x7ffffffb7810, index=13636) at engines/sword25/util/lua_unpersist.cpp:435
#9  0x000000000126b31f in Lua::unpersist (info=0x7ffffffb7810) at engines/sword25/util/lua_unpersist.cpp:165
#10 0x000000000126b741 in Lua::unserializeLiteralTable (info=0x7ffffffb7810, index=13609) at engines/sword25/util/lua_unpersist.cpp:319
#11 0x000000000126b7c1 in Lua::unpersistTable (info=0x7ffffffb7810, index=13609) at engines/sword25/util/lua_unpersist.cpp:339
#12 0x000000000126b2f6 in Lua::unpersist (info=0x7ffffffb7810) at engines/sword25/util/lua_unpersist.cpp:159
#13 0x000000000126c6ff in Lua::unpersistUpValue (info=0x7ffffffb7810, index=13608) at engines/sword25/util/lua_unpersist.cpp:672
#14 0x000000000126b345 in Lua::unpersist (info=0x7ffffffb7810) at engines/sword25/util/lua_unpersist.cpp:171
#15 0x000000000126b917 in Lua::unpersistFunction (info=0x7ffffffb7810, index=13602) at engines/sword25/util/lua_unpersist.cpp:385
#16 0x000000000126b30c in Lua::unpersist (info=0x7ffffffb7810) at engines/sword25/util/lua_unpersist.cpp:162
#17 0x000000000126b741 in Lua::unserializeLiteralTable (info=0x7ffffffb7810, index=13598) at engines/sword25/util/lua_unpersist.cpp:319
#18 0x000000000126b7c1 in Lua::unpersistTable (info=0x7ffffffb7810, index=13598) at engines/sword25/util/lua_unpersist.cpp:339
#19 0x000000000126b2f6 in Lua::unpersist (info=0x7ffffffb7810) at engines/sword25/util/lua_unpersist.cpp:159
#20 0x000000000126b741 in Lua::unserializeLiteralTable (info=0x7ffffffb7810, index=2) at engines/sword25/util/lua_unpersist.cpp:319
#21 0x000000000126b7c1 in Lua::unpersistTable (info=0x7ffffffb7810, index=2) at engines/sword25/util/lua_unpersist.cpp:339
#22 0x000000000126b2f6 in Lua::unpersist (info=0x7ffffffb7810) at engines/sword25/util/lua_unpersist.cpp:159
#23 0x000000000126b17f in Lua::unpersistLua (luaState=0x2724140, readStream=0x7ffffffb7860) at engines/sword25/util/lua_unpersist.cpp:101
#24 0x000000000124a35c in Sword25::LuaScriptEngine::unpersist (this=0x26f0f70, reader=...) at engines/sword25/script/luascript.cpp:485
#25 0x000000000123a194 in Sword25::PersistenceService::loadGame (this=0x25b6640 <Sword25::PersistenceService::getInstance()::instance>, slotID=1) at engines/sword25/kernel/persistenceservice.cpp:412
#26 0x0000000001238973 in Sword25::loadGame (L=0x2724140) at engines/sword25/kernel/kernel_script.cpp:436
#27 0x0000000001254185 in luaD_precall (L=0x2724140, func=0x3374990, nresults=0) at engines/sword25/util/lua/ldo.cpp:343
#28 0x0000000001267510 in luaV_execute (L=0x2724140, nexeccalls=2) at engines/sword25/util/lua/lvm.cpp:587
#29 0x0000000001254449 in luaD_call (L=0x2724140, func=0x2725b30, nResults=0) at engines/sword25/util/lua/ldo.cpp:401
#30 0x000000000124f106 in f_call (L=0x2724140, ud=0x7ffffffb7ff0) at engines/sword25/util/lua/lapi.cpp:803
#31 0x000000000125342e in luaD_rawrunprotected (L=0x2724140, f=0x124f0d1 <f_call(lua_State*, void*)>, ud=0x7ffffffb7ff0) at engines/sword25/util/lua/ldo.cpp:140
#32 0x000000000125484c in luaD_pcall (L=0x2724140, func=0x124f0d1 <f_call(lua_State*, void*)>, u=0x7ffffffb7ff0, old_top=32, ef=16) at engines/sword25/util/lua/ldo.cpp:487
#33 0x000000000124f1b5 in lua_pcall (L=0x2724140, nargs=0, nresults=0, errfunc=-2) at engines/sword25/util/lua/lapi.cpp:824
#34 0x0000000001249cdb in Sword25::LuaScriptEngine::executeBuffer (this=0x26f0f70, 
    data=0x3353fc0 "--[[\r\n\r\n\tBroken Sword 2.5 - Startup script\r\n\t(c) Mind Factory\r\n\t\r\n--]]\r\n\r\n--\r\n-- Konfigurationsdateien einlesen.\r\n--\r\nKernel.ExecuteFile('/system/cfg.lua')\r\nCfg.LoadConfigurationFiles()\r\n\r\n--\r\n-- Serv"..., size=3209, name=...)
    at engines/sword25/script/luascript.cpp:216
#35 0x0000000001249a1c in Sword25::LuaScriptEngine::executeFile (this=0x26f0f70, fileName=...) at engines/sword25/script/luascript.cpp:156
#36 0x0000000001235b34 in Sword25::Sword25Engine::appMain (this=0x26fdf60) at engines/sword25/sword25.cpp:140
#37 0x00000000012357a2 in Sword25::Sword25Engine::run (this=0x26fdf60) at engines/sword25/sword25.cpp:89
#38 0x000000000040b427 in runGame (plugin=0x26fe290, system=..., edebuglevels=...) at base/main.cpp:247
#39 0x000000000040c412 in scummvm_main (argc=1, argv=0x7fffffffe048) at base/main.cpp:492
#40 0x0000000000409e89 in main (argc=1, argv=0x7fffffffe048) at backends/platform/sdl/posix/posix-main.cpp:45

Ticket imported from: bugs/6999.

Attachments (1)

sword25-de.001 (496.4 KB) - added by SF/jupi 4 years ago.

Download all attachments as: .zip

Change History (9)

comment:1 Changed 4 years ago by wjp

Could you attach a crashing savegame?

Changed 4 years ago by SF/jupi

Attachment: sword25-de.001 added

comment:2 Changed 4 years ago by SF/jupi

The attached save game is the one that causes the aforementioned crash.

comment:3 Changed 4 years ago by SF/albadross

I do not have a trace like above but I have tried this save game in my English version of the game and it appears to crash in the same way as the save games I provided with bug report #6977

comment:4 Changed 4 years ago by dreammaster

Summary: Segfault on loading Broken Sword 2.5 savegameSWORD25: Segfault on loading Broken Sword 2.5 savegame

comment:5 Changed 4 years ago by sev-

Priority: normalblocker

comment:6 Changed 4 years ago by sev-

This is critical to fix before 1.8.0

comment:7 Changed 4 years ago by wjp

This should be fixed now by https://github.com/scummvm/scummvm/pull/659

comment:8 Changed 4 years ago by wjp

Owner: set to wjp
Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.