Opened 9 years ago
Closed 9 years ago
#6918 closed defect (fixed)
SHERLOCK: Crash when skipping intro
Reported by: | eriktorbjorn | Owned by: | dreammaster |
---|---|---|---|
Priority: | normal | Component: | Engine: Sherlock |
Version: | Keywords: | ||
Cc: | Game: | Sherlock Holmes: Case of the Rose Tattoo |
Description
I've only had this happen to me once, and I don't know how to reproduce it, but when I pressed Escape during the intro ScummVM crashed for me. I was running Valgrind at the time, and here's the error message I got:
==30039== Invalid read of size 8 ==30039== at 0x13AF2ED: Sherlock::StreamingImageFile::getNextFrame() (image_file.cpp:1056) ==30039== by 0x13875F6: Sherlock::Tattoo::TattooScene::startCAnim(int, int) (tattoo_scene.cpp:678) ==30039== by 0x134ACFC: Sherlock::Talk::cmdRunCAnimation(unsigned char const*&) (talk.cpp:1085) ==30039== by 0x1349B1A: Sherlock::Talk::doScript(Common::String const&) (talk.cpp:755) ==30039== by 0x1347F3C: Sherlock::Talk::talkTo(Common::String) (talk.cpp:346) ==30039== by 0x1388E0E: Sherlock::Tattoo::TattooTalk::talkTo(Common::String) (tattoo_talk.cpp:195) ==30039== by 0x13430FC: Sherlock::SherlockEngine::sceneLoop() (sherlock.cpp:176) ==30039== by 0x134303B: Sherlock::SherlockEngine::run() (sherlock.cpp:165) ==30039== by 0x40D06E: runGame(PluginSubclass<MetaEngine> const*, OSystem&, Common::String const&) (main.cpp:244) ==30039== by 0x40E077: scummvm_main (main.cpp:489) ==30039== by 0x40BBD7: main (posix-main.cpp:45) ==30039== Address 0x0 is not stack'd, malloc'd or (recently) free'd ==30039== ==30039== ==30039== Process terminating with default action of signal 11 (SIGSEGV)
So apparently there was no stream to read from when trying to get the next frame?
Ticket imported from: bugs/6918.
Change History (2)
comment:1 by , 9 years ago
comment:2 by , 9 years ago
Owner: | set to |
---|---|
Resolution: | → fixed |
Status: | new → closed |
Note:
See TracTickets
for help on using tickets.
Thanks for that. You're probably right; I'll look into it further tonight. Valgrind is actually a good idea; I get the feeling that a lot of the reported unreproducable errors may be due to memory corruption elsewhere that Valgrind may be able to detect. Maybe a more lengthy Valgrind session will turn other problems up.