Prevent address violation problem when disassembling corrupt aarch64 binary.
PR binutils/21595 * aarch64-dis.c (aarch64_ext_ldst_reglist): Check for an out of range value.
This commit is contained in:
parent
62b76e4b6e
commit
cd3ea7c69a
@ -1,3 +1,9 @@
|
||||
2017-06-15 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
PR binutils/21595
|
||||
* aarch64-dis.c (aarch64_ext_ldst_reglist): Check for an out of
|
||||
range value.
|
||||
|
||||
2017-06-15 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
PR binutils/21588
|
||||
|
@ -409,6 +409,9 @@ aarch64_ext_ldst_reglist (const aarch64_operand *self ATTRIBUTE_UNUSED,
|
||||
info->reglist.first_regno = extract_field (FLD_Rt, code, 0);
|
||||
/* opcode */
|
||||
value = extract_field (FLD_opcode, code, 0);
|
||||
/* PR 21595: Check for a bogus value. */
|
||||
if (value >= ARRAY_SIZE (data))
|
||||
return 0;
|
||||
if (expected_num != data[value].num_elements || data[value].is_reserved)
|
||||
return 0;
|
||||
info->reglist.num_regs = data[value].num_regs;
|
||||
|
Loading…
Reference in New Issue
Block a user