[Scummvm-tracker] [ScummVM :: Bugs] #14556: SCI: Crash in Island of Dr. Brain robot maze puzzle

ScummVM :: Bugs trac at scummvm.org
Tue Dec 12 20:27:08 UTC 2023


#14556: SCI: Crash in Island of Dr. Brain robot maze puzzle
-------------------------+----------------------------------
Reporter:  eriktorbjorn  |       Owner:  sluicebox
    Type:  defect        |      Status:  closed
Priority:  normal        |   Component:  Engine: SCI
 Version:                |  Resolution:  fixed
Keywords:                |        Game:  Island of Dr. Brain
-------------------------+----------------------------------
Changes (by sluicebox):

 * owner:  (none) => sluicebox
 * status:  new => closed
 * resolution:   => fixed

Comment:

 Fixed in
 https://github.com/scummvm/scummvm/commit/b7522b2bb9f851265de441e1828a5a1dd52c10af

 This one was a lot of fun.

 To reproduce:

 1. Program the robot to drop a piece on the start position
 2. Program the robot to leave the start space and collide with a wall
 3. Robot will collide with a wall, reverse course, and collide with the
 piece
 5. The second collision is unexpected and crashes

 I've attached a save that's in this state. Use the cartridge and click Go
 to reproduce.

 This is not an infinite recursion bug, this is a stack underflow bug. Our
 `validate_variable` function allows a lot of nonsense through, and in this
 case the VM happily served OOB process memory to the script without even
 logging it. Those undefined values just happened to cause infinite
 recursion.

 (There is an unrelated non-fatal bug in the maze involving floor pieces.
 When picking up a piece, the tile is still an obstacle until the piece is
 dropped. This isn't noticeable when picking up a piece from a wall tile,
 but when picking up a dropped piece from a floor tile, the robot will
 collide with an invisible obstacle if moved onto it.)
-- 
Ticket URL: <https://bugs.scummvm.org/ticket/14556#comment:14>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM


More information about the Scummvm-tracker mailing list