[Scummvm-tracker] [ScummVM] #10704: MYST ME (gog version) Crash

digitall trac at scummvm.org
Fri Sep 14 06:24:49 CEST 2018


#10704: MYST ME (gog version) Crash
-----------------------+----------------------------
  Reporter:  weirdzod  |      Owner:  bgK
      Type:  defect    |     Status:  new
  Priority:  high      |  Component:  Engine: Mohawk
Resolution:            |   Keywords:
      Game:  Myst      |
-----------------------+----------------------------

Comment (by digitall):

 Crash is prevented when running under Valgrind, but there is an invalid
 access on that card i.e. closeup of the solution for Rocketship Puzzle.
 See below:
 {{{
 ==620== Invalid write of size 2
 ==620==    at 0x4C3150B: memcpy at GLIBC_2.2.5 (vg_replace_strmem.c:1021)
 ==620==    by 0x33E4E6:
 Image::PICTDecoder::decodeCompressedQuickTime(Common::SeekableReadStream&)
 (pict.cpp:582)
 ==620==    by 0x33C194:
 Image::PICTDecoder::on_compressedQuickTime(Common::SeekableReadStream&)
 (pict.cpp:188)
 ==620==    by 0x33C5F7:
 Image::PICTDecoder::loadStream(Common::SeekableReadStream&) (pict.cpp:253)
 ==620==    by 0x1CCCD9: Mohawk::MystGraphics::decodeImage(unsigned short)
 (myst_graphics.cpp:131)
 ==620==    by 0x244014: Mohawk::GraphicsManager::findImage(unsigned short)
 (graphics.cpp:93)
 ==620==    by 0x1CD496:
 Mohawk::MystGraphics::copyImageSectionToBackBuffer(unsigned short,
 Common::Rect, Common::Rect) (myst_graphics.cpp:263)
 ==620==    by 0x1C43C4: Mohawk::MystAreaImageSwitch::drawDataToScreen()
 (myst_areas.cpp:429)
 ==620==    by 0x1C9DFE: Mohawk::MystCard::drawResourceImages()
 (myst_card.cpp:443)
 ==620==    by 0x1C8087: Mohawk::MystCard::enter() (myst_card.cpp:58)
 ==620==    by 0x1BEE8F: Mohawk::MohawkEngine_Myst::changeToCard(unsigned
 short, Mohawk::TransitionType) (myst.cpp:770)
 ==620==    by 0x1D2C2F:
 Mohawk::MystScriptParser::o_goToDestForward(unsigned short,
 Common::Array<unsigned short> const&) (myst_scripts.cpp:416)
 ==620==  Address 0xd7eb018 is 0 bytes after a block of size 32,136 alloc'd
 ==620==    at 0x4C2EF25: calloc (vg_replace_malloc.c:711)
 ==620==    by 0x37EA34: Graphics::Surface::create(unsigned short, unsigned
 short, Graphics::PixelFormat const&) (surface.cpp:74)
 ==620==    by 0x33E449:
 Image::PICTDecoder::decodeCompressedQuickTime(Common::SeekableReadStream&)
 (pict.cpp:578)
 ==620==    by 0x33C194:
 Image::PICTDecoder::on_compressedQuickTime(Common::SeekableReadStream&)
 (pict.cpp:188)
 ==620==    by 0x33C5F7:
 Image::PICTDecoder::loadStream(Common::SeekableReadStream&) (pict.cpp:253)
 ==620==    by 0x1CCCD9: Mohawk::MystGraphics::decodeImage(unsigned short)
 (myst_graphics.cpp:131)
 ==620==    by 0x244014: Mohawk::GraphicsManager::findImage(unsigned short)
 (graphics.cpp:93)
 ==620==    by 0x1CD496:
 Mohawk::MystGraphics::copyImageSectionToBackBuffer(unsigned short,
 Common::Rect, Common::Rect) (myst_graphics.cpp:263)
 ==620==    by 0x1C43C4: Mohawk::MystAreaImageSwitch::drawDataToScreen()
 (myst_areas.cpp:429)
 ==620==    by 0x1C9DFE: Mohawk::MystCard::drawResourceImages()
 (myst_card.cpp:443)
 ==620==    by 0x1C8087: Mohawk::MystCard::enter() (myst_card.cpp:58)
 ==620==    by 0x1BEE8F: Mohawk::MohawkEngine_Myst::changeToCard(unsigned
 short, Mohawk::TransitionType) (myst.cpp:770)
 ==620==
 }}}

 This is either a bug in our PICT decoder or a malformed PICT in the
 resource file (though the decoder should do more sanity checks to avoid
 bad accesses in that case).

--
Ticket URL: <https://bugs.scummvm.org/ticket/10704#comment:5>
ScummVM <https://bugs.scummvm.org>
ScummVM


More information about the Scummvm-tracker mailing list