[Scummvm-tracker] [ScummVM :: Bugs] #14617: ACCESS: Failed assertion in copyRectToSurface() when dragging inventory item (Amazon: GoE)

ScummVM :: Bugs trac at scummvm.org
Sat Sep 9 17:39:28 UTC 2023


#14617: ACCESS: Failed assertion in copyRectToSurface() when dragging inventory
item (Amazon: GoE)
--------------------------------------+----------------------------
Reporter:  PushmePullyu               |      Owner:  (none)
    Type:  defect                     |     Status:  new
Priority:  normal                     |  Component:  Engine: Access
 Version:                             |   Keywords:
    Game:  Amazon: Guardians of Eden  |
--------------------------------------+----------------------------
 Tested with !645230091f29ddcb73474cd820581e5f739afa15 on Linux x86_64
 using the US DOS CD version of Amazon: Guardians of Eden.

 When dragging an item to the right or bottom edge of the screen in
 inventory view the game terminates. Message for the right edge case:

 {{{
 scummvm: graphics/surface.cpp:172: void
 Graphics::Surface::copyRectToSurface(const void*, int, int, int, int,
 int): Assertion `width > 0 && destX + width <= w' failed.
 }}}


 The reason for the crash is this code in engines/access/inventory.cpp:
 in combineItems():

 {{{
 Common::Rect lastRect(lastBox.x, lastBox.y, lastBox.x + 46, lastBox.y +
 35);
 screen.copyBlock(&_vm->_buffer2, lastRect);
 }}}

 Due to the addition, lastRect can be out of bounds of the screen surface.

 To reproduce:
 1. Start a new game
 2. Click on the backpack icon to open the inventory
 3. Drag the car keys to the right or bottom edge of the screen
-- 
Ticket URL: <https://bugs.scummvm.org/ticket/14617>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM


More information about the Scummvm-tracker mailing list