Previous 199869 Revisions Next

r17753 Sunday 9th September, 2012 at 13:16:21 UTC by hap
add asserts to prevent array overflow or nullpointer access
[src/emu/sound]upd7759.c
[src/mame/drivers]homerun.c snk68.c

trunk/src/mame/drivers/snk68.c
r17752r17753
665665   ROM_LOAD16_BYTE( "snk880.22a", 0x1c0000, 0x20000, CRC(aa9c00d8) SHA1(1017ed1cc036c6084b71204a998fd05557a6e59f) )
666666   ROM_LOAD16_BYTE( "snk880.26a", 0x1c0001, 0x20000, CRC(9bc261c5) SHA1(f07fef465191d48ccc149d1a62e6382d3fc0ef9f) )
667667
668   ROM_REGION( 0x10000, "upd", 0 )   /* UPD7759 samples */
668   ROM_REGION( 0x20000, "upd", ROMREGION_ERASE00 )   /* UPD7759 samples */
669669   ROM_LOAD( "dg7.d20",  0x000000, 0x10000, CRC(aba9a9d3) SHA1(5098cd3a064b8ede24797de8879a277d79e79d75) )
670670
671671   ROM_REGION( 0x0100, "plds", 0 )
r17752r17753
702702   ROM_LOAD16_BYTE( "snk880.22a", 0x1c0000, 0x20000, CRC(aa9c00d8) SHA1(1017ed1cc036c6084b71204a998fd05557a6e59f) )
703703   ROM_LOAD16_BYTE( "snk880.26a", 0x1c0001, 0x20000, CRC(9bc261c5) SHA1(f07fef465191d48ccc149d1a62e6382d3fc0ef9f) )
704704
705   ROM_REGION( 0x10000, "upd", 0 )   /* UPD7759 samples */
705   ROM_REGION( 0x20000, "upd", ROMREGION_ERASE00 )   /* UPD7759 samples */
706706   ROM_LOAD( "dg7.d20",  0x000000, 0x10000, CRC(aba9a9d3) SHA1(5098cd3a064b8ede24797de8879a277d79e79d75) )
707707
708708   ROM_REGION( 0x0100, "plds", 0 )
trunk/src/mame/drivers/homerun.c
r17752r17753
361361   ROM_REGION( 0x20000, "gfx2", 0 )
362362   ROM_LOAD( "homerun.ic120",  0x00000, 0x20000, CRC(52f0709b) SHA1(19e675bcccadb774f60ec5929fc1fb5cf0d3f617) )
363363
364   ROM_REGION( 0x08000, "d7756c", ROMREGION_ERASE00 )
364   ROM_REGION( 0x20000, "d7756c", ROMREGION_ERASE00 )
365365   ROM_LOAD( "d7756c.ic98",    0x00000, 0x08000, NO_DUMP ) /* D7756C built-in rom */
366366ROM_END
367367
r17752r17753
377377   ROM_REGION( 0x20000, "gfx2", 0 )
378378   ROM_LOAD( "2.ic120",        0x00000, 0x20000, CRC(bedf7b98) SHA1(cb6c5fcaf8df5f5c7636c3c8f79b9dda78e30c2e) )
379379
380   ROM_REGION( 0x08000, "d7756c", ROMREGION_ERASE00 )
380   ROM_REGION( 0x20000, "d7756c", ROMREGION_ERASE00 )
381381   ROM_LOAD( "d7756c.ic98",    0x00000, 0x08000, NO_DUMP ) /* D7756C built-in rom */
382382ROM_END
383383
r17752r17753
393393   ROM_REGION( 0x20000, "gfx2", 0 )
394394   ROM_LOAD( "2.ic120",        0x00000, 0x20000, CRC(e65d4d57) SHA1(2ec9e5bdaa94b808573313b6eca657d798004b53) )
395395
396   ROM_REGION( 0x08000, "d7756c", 0 )
396   ROM_REGION( 0x20000, "d7756c", ROMREGION_ERASE00 )
397397   ROM_LOAD( "d77p56cr.ic98",  0x00000, 0x08000, CRC(06a234ac) SHA1(b4ceff3f9f78551cf4a085642e162e33b266f067) ) /* D77P56CR OTP rom (One-Time Programmable, note the extra P) */
398398ROM_END
399399
trunk/src/emu/sound/upd7759.c
r17752r17753
594594
595595static void upd7759_postload(upd7759_state *chip)
596596{
597   chip->rom = chip->rombase + chip->romoffset;
597   if (chip->rombase)
598      chip->rom = chip->rombase + chip->romoffset;
598599}
599600
600601
r17752r17753
654655   /* compute the ROM base or allocate a timer */
655656   chip->romoffset = 0;
656657   chip->rom = chip->rombase = *device->region();
657   if (chip->rom == NULL)
658   if (chip->rombase == NULL)
658659      chip->timer = device->machine().scheduler().timer_alloc(FUNC(upd7759_slave_update), chip);
660   else
661      assert((device->region()->bytes() & 0x1ffff) == 0);
659662
660663   /* set the DRQ callback */
661664   chip->drqcallback = intf->drqcallback;
r17752r17753
736739void upd7759_set_bank_base(device_t *device, UINT32 base)
737740{
738741   upd7759_state *chip = get_safe_token(device);
742   assert(chip->rombase != NULL);
739743   chip->rom = chip->rombase + base;
740744   chip->romoffset = base;
741745}

Previous 199869 Revisions Next


© 1997-2024 The MAME Team