From 80d59e420a3510b18289f431ea3bafc1c751bd94 Mon Sep 17 00:00:00 2001 From: hap Date: Sat, 9 Jul 2022 18:14:17 +0200 Subject: exidy440: fix invalid array access --- src/mame/exidy/exidy440_a.cpp | 4 +--- src/mame/exidy/exidy440_a.h | 1 - 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/src/mame/exidy/exidy440_a.cpp b/src/mame/exidy/exidy440_a.cpp index a7f13bdeeca..5cdb884610c 100644 --- a/src/mame/exidy/exidy440_a.cpp +++ b/src/mame/exidy/exidy440_a.cpp @@ -554,7 +554,7 @@ int16_t *exidy440_sound_device::find_or_add_to_sound_cache(int address, int leng if (current.address == address && current.length == length && current.bits == bits && current.frequency == frequency) return ¤t.data[0]; - return add_to_sound_cache(&m_samples[address], address, length, bits, frequency); + return length ? add_to_sound_cache(&m_samples[address], address, length, bits, frequency) : nullptr; } @@ -584,8 +584,6 @@ void exidy440_sound_device::play_cvsd(int ch) /* compute the base address in the converted samples array */ base = find_or_add_to_sound_cache(address, length, channel_bits[ch], m_channel_frequency[ch]); - if (!base) - return; /* if the length is 0 or 1, just do an immediate end */ if (length <= 3) diff --git a/src/mame/exidy/exidy440_a.h b/src/mame/exidy/exidy440_a.h index 6e2a56c0460..97f674a3471 100644 --- a/src/mame/exidy/exidy440_a.h +++ b/src/mame/exidy/exidy440_a.h @@ -73,7 +73,6 @@ private: uint8_t m_sound_command_ack; uint8_t m_sound_banks[4]; - //uint8_t m_m6844_data[0x20]; uint8_t m_sound_volume[0x10]; std::vector m_mixer_buffer_left; std::vector m_mixer_buffer_right; -- cgit v1.2.3