From 761dd34abceea5a8810e14c9db3918df4d0c9aae Mon Sep 17 00:00:00 2001 From: Ced2911 Date: Fri, 12 Apr 2024 07:24:07 +0000 Subject: [PATCH 1/2] check if decode[idx] is callable --- arch/SH/SHDisassembler.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/SH/SHDisassembler.c b/arch/SH/SHDisassembler.c index 32d60a9564..b05c64f880 100644 --- a/arch/SH/SHDisassembler.c +++ b/arch/SH/SHDisassembler.c @@ -2163,7 +2163,7 @@ static bool sh_disassemble(const uint8_t *code, MCInst *MI, uint64_t address, idx = ((insn >> 8) & 0xf0) | (insn & 0x000f); } - if (decode[idx]) { + if (idx < sizeof(decode)/sizeof(decode[0]) && decode[idx]) { return decode[idx](insn, address, MI, mode, info, detail); } else { return MCDisassembler_Fail; From f0bf3f407cedff3f92c3758834648f43dbdc456d Mon Sep 17 00:00:00 2001 From: Rot127 <45763064+Rot127@users.noreply.github.com> Date: Mon, 22 Apr 2024 07:36:31 +0000 Subject: [PATCH 2/2] Use ARRC_SIZE macro for size check --- arch/SH/SHDisassembler.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/SH/SHDisassembler.c b/arch/SH/SHDisassembler.c index b05c64f880..879a8508a5 100644 --- a/arch/SH/SHDisassembler.c +++ b/arch/SH/SHDisassembler.c @@ -2163,7 +2163,7 @@ static bool sh_disassemble(const uint8_t *code, MCInst *MI, uint64_t address, idx = ((insn >> 8) & 0xf0) | (insn & 0x000f); } - if (idx < sizeof(decode)/sizeof(decode[0]) && decode[idx]) { + if (idx < ARR_SIZE(decode) && decode[idx]) { return decode[idx](insn, address, MI, mode, info, detail); } else { return MCDisassembler_Fail;