Prevent an illegal memory access in the xgate disassembler.

* xgate-dis.c (print_insn): Fix decoding of the XGATE_OP_DYA
	operand.
This commit is contained in:
Nick Clifton 2019-10-28 15:06:32 +00:00
parent 12c3e9173e
commit dee334510f
2 changed files with 8 additions and 3 deletions

View File

@ -1,3 +1,8 @@
2019-10-28 Nick Clifton <nickc@redhat.com>
* xgate-dis.c (print_insn): Fix decoding of the XGATE_OP_DYA
operand.
2019-10-25 Nick Clifton <nickc@redhat.com> 2019-10-25 Nick Clifton <nickc@redhat.com>
* rx-dis.c (print_insn_rx): Use parenthesis to ensure correct * rx-dis.c (print_insn_rx): Use parenthesis to ensure correct

View File

@ -169,8 +169,8 @@ print_insn (bfd_vma memaddr, struct disassemble_info* info)
} }
else if (!strcmp (decodePTR->opcodePTR->constraints, XGATE_OP_DYA)) else if (!strcmp (decodePTR->opcodePTR->constraints, XGATE_OP_DYA))
{ {
operandOne = ripBits (&operMaskReg, 3, opcodePTR, raw_code); operandOne = ripBits (&operMaskReg, 3, decodePTR->opcodePTR, raw_code);
operandTwo = ripBits (&operMaskReg, 3, opcodePTR, raw_code); operandTwo = ripBits (&operMaskReg, 3, decodePTR->opcodePTR, raw_code);
( *info->fprintf_func)(info->stream, " R%x, R%x", operandOne, ( *info->fprintf_func)(info->stream, " R%x, R%x", operandOne,
operandTwo); operandTwo);
} }
@ -259,7 +259,7 @@ print_insn (bfd_vma memaddr, struct disassemble_info* info)
else else
{ {
(*info->fprintf_func)(info->stream, " unhandled mode %s", (*info->fprintf_func)(info->stream, " unhandled mode %s",
opcodePTR->constraints); decodePTR->opcodePTR->constraints);
} }
perviousBin = raw_code; perviousBin = raw_code;
} }