mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-01-18 12:24:38 +08:00
RISC-V: Fix buffer overflow on print_insn_riscv
Because riscv_insn_length started to support instructions up to 176-bit, we need to increase packet buffer size to 176-bit in size. include/ChangeLog: * opcode/riscv.h (RISCV_MAX_INSN_LEN): Max instruction length for use in buffer size. opcodes/ChangeLog: * riscv-dis.c (print_insn_riscv): Increase buffer size for max 176-bit length instructions.
This commit is contained in:
parent
136ea87420
commit
73e30e726c
@ -40,6 +40,8 @@ static inline unsigned int riscv_insn_length (insn_t insn)
|
||||
/* 80- ... 176-bit instructions. */
|
||||
if ((insn & 0x7f) == 0x7f && (insn & 0x7000) != 0x7000)
|
||||
return 10 + ((insn >> 11) & 0xe);
|
||||
/* Maximum value returned by this function. */
|
||||
#define RISCV_MAX_INSN_LEN 22
|
||||
/* Longer instructions not supported at the moment. */
|
||||
return 2;
|
||||
}
|
||||
|
@ -1000,7 +1000,7 @@ riscv_disassemble_data (bfd_vma memaddr ATTRIBUTE_UNUSED,
|
||||
int
|
||||
print_insn_riscv (bfd_vma memaddr, struct disassemble_info *info)
|
||||
{
|
||||
bfd_byte packet[8];
|
||||
bfd_byte packet[RISCV_MAX_INSN_LEN];
|
||||
insn_t insn = 0;
|
||||
bfd_vma dump_size;
|
||||
int status;
|
||||
|
Loading…
Reference in New Issue
Block a user