[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