mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-10-25 19:43:47 +08:00
S12Z: Don't crash when disassembling invalid instructions.
Check for null before dereferencing an operand pointer. Normally this situation should never arise, but could happen if a "partial" instruction is encountered at the end of a file or section. opcodes/ * s12z-dis.c (print_insn_s12z): Do not dereference an operand if it is null.
This commit is contained in:
@ -1,6 +1,8 @@
|
|||||||
2019-01-09 John Darrington <john@darrington.wattle.id.au>
|
2019-01-09 John Darrington <john@darrington.wattle.id.au>
|
||||||
|
|
||||||
* s12z-dis.c (opr_emit_disassembly): Do not omit an index if it is
|
* s12z-dis.c (print_insn_s12z): Do not dereference an operand
|
||||||
|
if it is null.
|
||||||
|
-dis.c (opr_emit_disassembly): Do not omit an index if it is
|
||||||
zero.
|
zero.
|
||||||
|
|
||||||
2019-01-09 Andrew Paprocki <andrew@ishiboo.com>
|
2019-01-09 Andrew Paprocki <andrew@ishiboo.com>
|
||||||
|
|||||||
@ -351,7 +351,7 @@ print_insn_s12z (bfd_vma memaddr, struct disassemble_info* info)
|
|||||||
(struct mem_read_abstraction_base *) &mra);
|
(struct mem_read_abstraction_base *) &mra);
|
||||||
|
|
||||||
(info->fprintf_func) (info->stream, "%s", mnemonics[(long)operator]);
|
(info->fprintf_func) (info->stream, "%s", mnemonics[(long)operator]);
|
||||||
|
|
||||||
/* Ship out size sufficies for those instructions which
|
/* Ship out size sufficies for those instructions which
|
||||||
need them. */
|
need them. */
|
||||||
if (osize == -1)
|
if (osize == -1)
|
||||||
@ -359,7 +359,7 @@ print_insn_s12z (bfd_vma memaddr, struct disassemble_info* info)
|
|||||||
bool suffix = false;
|
bool suffix = false;
|
||||||
for (o = 0; o < n_operands; ++o)
|
for (o = 0; o < n_operands; ++o)
|
||||||
{
|
{
|
||||||
if (operands[o]->osize != -1)
|
if (operands[o] && operands[o]->osize != -1)
|
||||||
{
|
{
|
||||||
if (!suffix)
|
if (!suffix)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user