diff options
author | Oliver Stöneberg <oliverst@online.de> | 2014-10-23 11:15:43 +0200 |
---|---|---|
committer | Oliver Stöneberg <oliverst@online.de> | 2014-10-23 11:15:43 +0200 |
commit | f04db035c9ebeb71004ebcf69e13c10064bd95a3 (patch) | |
tree | d9a58e8a48fab8807f74f6ad11d3b20e5d9cf2b3 | |
parent | 2d5eacd0f55ef9546daf5d76df7c3e0c0fabbf01 (diff) |
fixed signed integer overflow in address_table::subtable_open() - by O. Galibert (nw)
-rw-r--r-- | src/emu/memory.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/emu/memory.c b/src/emu/memory.c index c7440daa24b..b4c49dd3fd5 100644 --- a/src/emu/memory.c +++ b/src/emu/memory.c @@ -3435,7 +3435,8 @@ UINT16 *address_table::subtable_open(offs_t l1index) for (int i=0; i<size; i++) subptr[i] = subentry; m_table[l1index] = newentry; - m_subtable[newentry - SUBTABLE_BASE].m_checksum = (subentry + (subentry << 8) + (subentry << 16) + (subentry << 24)) * ((1 << level2_bits())/4); + UINT32 subkey = subentry + (subentry << 8) + (subentry << 16) + (subentry << 24); + m_subtable[newentry - SUBTABLE_BASE].m_checksum = subkey * (((1 << level2_bits())/4)); subentry = newentry; } |