Previous 199869 Revisions Next

r33028 Tuesday 28th October, 2014 at 06:33:41 UTC by Peter Ferrie
rcdino4: fix OOB access
[src/mame/drivers]funworld.c

trunk/src/mame/drivers/funworld.c
r241539r241540
63526352   }
63536353
63546354   j = 1;
6355   i = 0x81;
63556356
6356   for (i = 0x81; i < (0x81 + ARRAY_LENGTH(rcdino4_keys80));)
6357   do
63576358   {
63586359      UINT8 key;
63596360
r241539r241540
64186419      while (j < 0x100);
64196420
64206421      j &= 0xff;
6421      do {
6422         assert((i+1 - 0x81) >= 0 && (i+1 - 0x81) < ARRAY_LENGTH(rcdino4_keys80));
6423      } while (!rcdino4_keys80[++i - 0x81]);
64246422
6423      do {} while (((++i - 0x81) < ARRAY_LENGTH(rcdino4_keys80))
6424            && !rcdino4_keys80[i - 0x81]);
6425
6426      if ((i - 0x81) == ARRAY_LENGTH(rcdino4_keys80))
6427      {
6428         break;
6429      }
6430
64256431      if ((i == 0xa4)
64266432         || (i == 0xb0)
64276433         || (i == 0xf8)
r241539r241540
64306436         j = 0; /* re-align offset after skipping some pages */
64316437      }
64326438   }
6439   while (1);
64336440}
64346441
64356442DRIVER_INIT_MEMBER(funworld_state, rcdinch)


Previous 199869 Revisions Next


© 1997-2024 The MAME Team