[M68K] use M68K line A for memory data poisoning

In case of out of bound access return a poison value to force to point to
d68000_invalid() opcode. This will force instruction_is_valid() to return
false and capstone will do skipdata.
Line A are more M68K standard invalid lines than 0x0808.
This commit is contained in:
Nicolas PLANEL 2015-10-08 22:27:59 +11:00
parent af1d39d336
commit 5f9257cfaa

View File

@ -147,7 +147,7 @@ unsigned int m68k_read_disassembler_16(m68k_info *info, const uint64_t address)
{
const uint64_t addr = (address - info->baseAddress) & info->address_mask;
if (addr > (info->code_len - 2)) {
return 0x0808;
return 0xaaaa;
}
uint16_t v0 = info->code[addr + 0];
uint16_t v1 = info->code[addr + 1];
@ -158,7 +158,7 @@ unsigned int m68k_read_disassembler_32(m68k_info *info, const uint64_t address)
{
const uint64_t addr = (address - info->baseAddress) & info->address_mask;
if (addr > (info->code_len - 4)) {
return 0x08080808;
return 0xaaaaaaaa;
}
uint32_t v0 = info->code[addr + 0];
uint32_t v1 = info->code[addr + 1];
@ -171,7 +171,7 @@ uint64_t m68k_read_disassembler_64(m68k_info *info, const uint64_t address)
{
const uint64_t addr = (address - info->baseAddress) & info->address_mask;
if (addr > (info->code_len - 8)) {
return 0x0808080808080808;
return 0xaaaaaaaaaaaaaaaa;
}
uint64_t v0 = info->code[addr + 0];
uint64_t v1 = info->code[addr + 1];