Opened 8 years ago

Closed 8 years ago

#5913 closed defect (fixed)

CGE: Crash in stage 14

Reported by: SF/domino1983 Owned by: Strangerke
Priority: normal Component: Engine: CGE
Keywords: Cc:
Game: Soltys

Description

The game crashes in stage 14 when you point two guys after giving them nervosol. Just load save no 4 and go to stage 14.

Im using daily build from Dec 4 2011 10:25:46 Win32
Polish version of Soltys

Ticket imported from: #3450423. Ticket imported from: bugs/5913.

Attachments (1)

ScummVM.zip (111.1 KB ) - added by SF/domino1983 8 years ago.

Download all attachments as: .zip

Change History (7)

by SF/domino1983, 8 years ago

Attachment: ScummVM.zip added

comment:1 by digitall, 8 years ago

Owner: set to Strangerke

comment:2 by digitall, 8 years ago

Replicated with:
ScummVM 1.5.0git1065-g0f6f912-dirty (Dec 4 2011 21:23:01)
on Linux x86_32.

ScummVM crashes with an assertion:
scummvm: engines/cge/vga13h.cpp:928: void CGE::Bitmap::show(int16, int16): Assertion `destP < destEndP' failed.

comment:3 by digitall, 8 years ago

Running with valgrind gives the following bad read and write prior to hitting the assertion:
==15903== Invalid read of size 1
==15903== at 0x8071DDA: CGE::Bitmap::show(short, short) (vga13h.cpp:943)
==15903== by 0x806FFCC: CGE::Sprite::show() (vga13h.cpp:438)
==15903== by 0x80717A5: CGE::Vga::show() (vga13h.cpp:804)
==15903== by 0x80635D0: CGE::CGEEngine::mainLoop() (cge_main.cpp:1240)
==15903== by 0x80640EF: CGE::CGEEngine::runGame() (cge_main.cpp:1407)
==15903== by 0x80649E0: CGE::CGEEngine::cge_main() (cge_main.cpp:1553)
==15903== by 0x805F2AE: CGE::CGEEngine::run() (cge.cpp:196)
==15903== by 0x804F738: runGame(PluginSubclass<MetaEngine> const*, OSystem&, Common::String const&) (main.cpp:210)
==15903== by 0x8050352: scummvm_main (main.cpp:423)
==15903== by 0x804E5B2: main (posix-main.cpp:45)
==15903== Address 0x65f9f80 is 0 bytes after a block of size 1,280 alloc'd
==15903== at 0x4025A44: operator new[](unsigned int) (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==15903== by 0x8074D99: CGE::Bitmap::Bitmap(CGE::CGEEngine*, unsigned short, unsigned short, unsigned char) (bitmap.cpp:71)
==15903== by 0x806DABE: CGE::InfoLine::InfoLine(CGE::CGEEngine*, unsigned short) (talk.cpp:240)
==15903== by 0x805E9B6: CGE::CGEEngine::init() (cge.cpp:99)
==15903== by 0x805F2A3: CGE::CGEEngine::run() (cge.cpp:194)
==15903== by 0x804F738: runGame(PluginSubclass<MetaEngine> const*, OSystem&, Common::String const&) (main.cpp:210)
==15903== by 0x8050352: scummvm_main (main.cpp:423)
==15903== by 0x804E5B2: main (posix-main.cpp:45)

==15903== Invalid write of size 1
==15903== at 0x8071DE0: CGE::Bitmap::show(short, short) (vga13h.cpp:943)
==15903== by 0x806FFCC: CGE::Sprite::show() (vga13h.cpp:438)
==15903== by 0x80717A5: CGE::Vga::show() (vga13h.cpp:804)
==15903== by 0x80635D0: CGE::CGEEngine::mainLoop() (cge_main.cpp:1240)
==15903== by 0x80640EF: CGE::CGEEngine::runGame() (cge_main.cpp:1407)
==15903== by 0x80649E0: CGE::CGEEngine::cge_main() (cge_main.cpp:1553)
==15903== by 0x805F2AE: CGE::CGEEngine::run() (cge.cpp:196)
==15903== by 0x804F738: runGame(PluginSubclass<MetaEngine> const*, OSystem&, Common::String const&) (main.cpp:210)
==15903== by 0x8050352: scummvm_main (main.cpp:423)
==15903== by 0x804E5B2: main (posix-main.cpp:45)
==15903== Address 0x6a82c3a is 2 bytes after a block of size 64,000 alloc'd
==15903== at 0x4024BBE: calloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==15903== by 0x8152340: Graphics::Surface::create(unsigned short, unsigned short, Graphics::PixelFormat const&) (surface.cpp:60)
==15903== by 0x8152415: Graphics::Surface::copyFrom(Graphics::Surface const&) (surface.cpp:73)
==15903== by 0x8071B3B: CGE::Vga::copyPage(unsigned short, unsigned short) (vga13h.cpp:847)
==15903== by 0x80614E7: CGE::CGEEngine::sceneUp() (cge_main.cpp:662)
==15903== by 0x80616DE: CGE::CGEEngine::xScene() (cge_main.cpp:693)
==15903== by 0x8068842: CGE::CommandHandler::runCommand() (snail.cpp:344)
==15903== by 0x80635F2: CGE::CGEEngine::mainLoop() (cge_main.cpp:1242)
==15903== by 0x80640EF: CGE::CGEEngine::runGame() (cge_main.cpp:1407)
==15903== by 0x80649E0: CGE::CGEEngine::cge_main() (cge_main.cpp:1553)
==15903== by 0x805F2AE: CGE::CGEEngine::run() (cge.cpp:196)
==15903== by 0x804F738: runGame(PluginSubclass<MetaEngine> const*, OSystem&, Common::String const&) (main.cpp:210)

comment:4 by Strangerke, 8 years ago

Resolution: fixed

comment:5 by Strangerke, 8 years ago

Fixed in 9eebe512c8c0cfb7bfd73ecd9e9e163cf95f8403

comment:6 by sev-, 8 years ago

Status: newclosed
Note: See TracTickets for help on using tickets.