mirror of
https://github.com/capstone-engine/capstone.git
synced 2025-02-14 11:09:50 +00:00
[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:
parent
af1d39d336
commit
5f9257cfaa
@ -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];
|
||||
|
Loading…
x
Reference in New Issue
Block a user