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>
* 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))
{
operandOne = ripBits (&operMaskReg, 3, opcodePTR, raw_code);
operandTwo = ripBits (&operMaskReg, 3, opcodePTR, raw_code);
operandOne = ripBits (&operMaskReg, 3, decodePTR->opcodePTR, raw_code);
operandTwo = ripBits (&operMaskReg, 3, decodePTR->opcodePTR, raw_code);
( *info->fprintf_func)(info->stream, " R%x, R%x", operandOne,
operandTwo);
}
@ -259,7 +259,7 @@ print_insn (bfd_vma memaddr, struct disassemble_info* info)
else
{
(*info->fprintf_func)(info->stream, " unhandled mode %s",
opcodePTR->constraints);
decodePTR->opcodePTR->constraints);
}
perviousBin = raw_code;
}