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 dreammaster, 9 years ago

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.

comment:2 by dreammaster, 9 years ago

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