[Scummvm-tracker] [ScummVM :: Bugs] #16350: silent footsteps crashes scummvm when being scanned for some reason

ScummVM :: Bugs trac at scummvm.org
Thu Nov 13 04:43:35 UTC 2025


#16350: silent footsteps crashes scummvm when being scanned for some reason
--------------------+---------------------------------
Reporter:  i30817   |       Owner:  (none)
    Type:  defect   |      Status:  new
Priority:  normal   |   Component:  Engine: Wintermute
 Version:           |  Resolution:
Keywords:  scanner  |        Game:
--------------------+---------------------------------
Description changed by i30817:

Old description:

> {{{
>
> Starting program:
> /media/carla/Mordred/linuxstuff/Projects/scummvm/scummvm -a -p
> ScummVM/silent_footsteps/
> [Thread debugging using libthread_db enabled]
> Using host libthread_db library "/lib/x86_64-linux-
> gnu/libthread_db.so.1".
>
> Program received signal SIGSEGV, Segmentation fault.
> Wintermute::openSfmFile (filename=...) at
> engines/wintermute/base/file/base_savefile_manager_file.cpp:57
> 57              return
> g_system->getSavefileManager()->openRawFile(smFilename);
> (gdb) bt
> #0  Wintermute::openSfmFile(Common::String const&) (filename=...) at
> engines/wintermute/base/file/base_savefile_manager_file.cpp:57
> #1  0x000055555ad3fa67 in
> Wintermute::BaseFileManager::openFileRaw(Common::String const&)
> (this=0x55555fcb0ee0, filename=...)
>     at engines/wintermute/base/base_file_manager.cpp:489
> #2  0x000055555ad3f874 in
> Wintermute::BaseFileManager::openFile(Common::String const&, bool, bool)
>     (this=0x55555fcb0ee0, filename=..., absPathWarning=false,
> keepTrackOf=false) at engines/wintermute/base/base_file_manager.cpp:446
> #3  0x000055555aca1bec in
> Wintermute::WintermuteEngine::getGameInfo(Common::FSList const&,
> Common::String&, Common::String&)
>     (fslist=..., name=..., caption=...) at
> engines/wintermute/wintermute.cpp:359
> #4  0x000055555aca057e in
> Wintermute::WintermuteMetaEngine::fallbackDetectExtern(unsigned int,
> Common::HashMap<Common::Path, Common::FSNode,
> Common::Path::IgnoreCase_Hash, Common::Path::IgnoreCase_EqualTo> const&,
> Common::FSList const&, ADDetectedGameExtraInfo**) const
>     (this=0x55555fb193a0, md5Bytes=5000, allFiles=..., fslist=...,
> extraInfo=0x0) at engines/wintermute/metaengine.cpp:218
> #5  0x00005555563d5970 in
> Wintermute::WintermuteMetaEngineDetection::fallbackDetect(Common::HashMap<Common::Path,
> Common::FSNode, Common::Path::IgnoreCase_Hash,
> Common::Path::IgnoreCase_EqualTo> const&, Common::FSList const&,
> ADDetectedGameExtraInfo**) const
>     (this=0x55555fc75ed0, allFiles=..., fslist=..., extra=0x7fffffff7ac8)
> at engines/wintermute/detection.cpp:107
> #6  0x000055555ae1644d in
> AdvancedMetaEngineDetectionBase::detectGames(Common::FSList const&,
> unsigned int, bool)
>     (this=0x55555fc75ed0, fslist=..., skipADFlags=0,
> skipIncomplete=false) at engines/advancedDetector.cpp:292
> --Type <RET> for more, q to quit, c to continue without paging--
> #7  0x00005555563fbcc4 in EngineManager::detectGames(Common::FSList
> const&, unsigned int, bool)
>     (this=0x55555fc26e60, fslist=..., skipADFlags=0,
> skipIncomplete=false) at base/plugins.cpp:688
> #8  0x00005555563f32c2 in Base::getGameList(Common::FSNode const&)
> (dir=...) at base/commandLine.cpp:1523
> #9  0x00005555563f389c in Base::recAddGames(Common::FSNode const&,
> Common::String const&, Common::String const&, bool)
>     (dir=..., engineId=..., gameId=..., recursive=false) at
> base/commandLine.cpp:1584
> #10 0x00005555563f4543 in Base::addGames(Common::Path const&,
> Common::String const&, Common::String const&, bool)
>     (path=..., engineId=..., gameId=..., recursive=false) at
> base/commandLine.cpp:1698
> #11 0x00005555563f63ce in Base::processSettings(Common::String&,
> Common::HashMap<Common::String, Common::String, Common::IgnoreCase_Hash,
> Common::IgnoreCase_EqualTo>&, Common::Error&) (command=..., settings=...,
> err=...) at base/commandLine.cpp:2046
> #12 0x00005555563e0f4f in scummvm_main(int, char const* const*) (argc=4,
> argv=0x7fffffffe438) at base/main.cpp:525
> #13 0x00005555563dc7f8 in main(int, char**) (argc=4, argv=0x7fffffffe438)
> at backends/platform/sdl/posix/posix-main.cpp:44
> (gdb) print smFilename
> $1 = {<Common::BaseString<char>> = {static npos = 4294967295, static
> _builtinCapacity = 20, _size = 17,
>     _str = 0x7fffffff6330 ".startup.settings", {_storage =
> ".startup.settings\000\000", _extern = {_refCount = 0x707574726174732e,
>         _capacity = 1952805678}}}, <No data fields>}
> (gdb) print g_system
> $2 = (OSystem *) 0x55555fb2e0f0
> (gdb) print g_system->getSavefileManager()
> $3 = (Common::SaveFileManager *) 0x0
> }}}
> I think get savefilemanager is not working when used directly from the
> command line in this engine and for some reason adding or just detecting
> (--detect crashes in the same line) calls it.

New description:

 {{{

 Starting program: /media/i3/Mordred/linuxstuff/Projects/scummvm/scummvm -a
 -p ScummVM/silent_footsteps/
 [Thread debugging using libthread_db enabled]
 Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

 Program received signal SIGSEGV, Segmentation fault.
 Wintermute::openSfmFile (filename=...) at
 engines/wintermute/base/file/base_savefile_manager_file.cpp:57
 57              return
 g_system->getSavefileManager()->openRawFile(smFilename);
 (gdb) bt
 #0  Wintermute::openSfmFile(Common::String const&) (filename=...) at
 engines/wintermute/base/file/base_savefile_manager_file.cpp:57
 #1  0x000055555ad3fa67 in
 Wintermute::BaseFileManager::openFileRaw(Common::String const&)
 (this=0x55555fcb0ee0, filename=...)
     at engines/wintermute/base/base_file_manager.cpp:489
 #2  0x000055555ad3f874 in
 Wintermute::BaseFileManager::openFile(Common::String const&, bool, bool)
     (this=0x55555fcb0ee0, filename=..., absPathWarning=false,
 keepTrackOf=false) at engines/wintermute/base/base_file_manager.cpp:446
 #3  0x000055555aca1bec in
 Wintermute::WintermuteEngine::getGameInfo(Common::FSList const&,
 Common::String&, Common::String&)
     (fslist=..., name=..., caption=...) at
 engines/wintermute/wintermute.cpp:359
 #4  0x000055555aca057e in
 Wintermute::WintermuteMetaEngine::fallbackDetectExtern(unsigned int,
 Common::HashMap<Common::Path, Common::FSNode,
 Common::Path::IgnoreCase_Hash, Common::Path::IgnoreCase_EqualTo> const&,
 Common::FSList const&, ADDetectedGameExtraInfo**) const
     (this=0x55555fb193a0, md5Bytes=5000, allFiles=..., fslist=...,
 extraInfo=0x0) at engines/wintermute/metaengine.cpp:218
 #5  0x00005555563d5970 in
 Wintermute::WintermuteMetaEngineDetection::fallbackDetect(Common::HashMap<Common::Path,
 Common::FSNode, Common::Path::IgnoreCase_Hash,
 Common::Path::IgnoreCase_EqualTo> const&, Common::FSList const&,
 ADDetectedGameExtraInfo**) const
     (this=0x55555fc75ed0, allFiles=..., fslist=..., extra=0x7fffffff7ac8)
 at engines/wintermute/detection.cpp:107
 #6  0x000055555ae1644d in
 AdvancedMetaEngineDetectionBase::detectGames(Common::FSList const&,
 unsigned int, bool)
     (this=0x55555fc75ed0, fslist=..., skipADFlags=0, skipIncomplete=false)
 at engines/advancedDetector.cpp:292
 --Type <RET> for more, q to quit, c to continue without paging--
 #7  0x00005555563fbcc4 in EngineManager::detectGames(Common::FSList
 const&, unsigned int, bool)
     (this=0x55555fc26e60, fslist=..., skipADFlags=0, skipIncomplete=false)
 at base/plugins.cpp:688
 #8  0x00005555563f32c2 in Base::getGameList(Common::FSNode const&)
 (dir=...) at base/commandLine.cpp:1523
 #9  0x00005555563f389c in Base::recAddGames(Common::FSNode const&,
 Common::String const&, Common::String const&, bool)
     (dir=..., engineId=..., gameId=..., recursive=false) at
 base/commandLine.cpp:1584
 #10 0x00005555563f4543 in Base::addGames(Common::Path const&,
 Common::String const&, Common::String const&, bool)
     (path=..., engineId=..., gameId=..., recursive=false) at
 base/commandLine.cpp:1698
 #11 0x00005555563f63ce in Base::processSettings(Common::String&,
 Common::HashMap<Common::String, Common::String, Common::IgnoreCase_Hash,
 Common::IgnoreCase_EqualTo>&, Common::Error&) (command=..., settings=...,
 err=...) at base/commandLine.cpp:2046
 #12 0x00005555563e0f4f in scummvm_main(int, char const* const*) (argc=4,
 argv=0x7fffffffe438) at base/main.cpp:525
 #13 0x00005555563dc7f8 in main(int, char**) (argc=4, argv=0x7fffffffe438)
 at backends/platform/sdl/posix/posix-main.cpp:44
 (gdb) print smFilename
 $1 = {<Common::BaseString<char>> = {static npos = 4294967295, static
 _builtinCapacity = 20, _size = 17,
     _str = 0x7fffffff6330 ".startup.settings", {_storage =
 ".startup.settings\000\000", _extern = {_refCount = 0x707574726174732e,
         _capacity = 1952805678}}}, <No data fields>}
 (gdb) print g_system
 $2 = (OSystem *) 0x55555fb2e0f0
 (gdb) print g_system->getSavefileManager()
 $3 = (Common::SaveFileManager *) 0x0
 }}}
 I think get savefilemanager is not working when used directly from the
 command line in this engine and for some reason adding or just detecting
 (--detect crashes in the same line) calls it.

--
-- 
Ticket URL: <https://bugs.scummvm.org/ticket/16350#comment:2>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM


More information about the Scummvm-tracker mailing list