From c0f92bf9430546707f2154b8a2656974e5c7093c Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Sat, 23 Apr 2016 09:32:59 -0700 Subject: [PATCH] Skip if size of bfd_vma is smaller than address size Disassembler won't work properly when size of bfd_vma is smaller than address size. PR binutils/19983 PR binutils/19984 * i386-dis.c (print_insn): Return -1 if size of bfd_vma is smaller than address size. --- opcodes/ChangeLog | 7 +++++++ opcodes/i386-dis.c | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index c42397614cf..b83508607d0 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,10 @@ +2016-04-23 H.J. Lu + + PR binutils/19983 + PR binutils/19984 + * i386-dis.c (print_insn): Return -1 if size of bfd_vma is + smaller than address size. + 2016-04-20 Trevor Saunders * alpha-dis.c: Regenerate. diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c index de0534c24e7..560f75cc024 100644 --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -13327,6 +13327,13 @@ print_insn (bfd_vma pc, disassemble_info *info) p++; } + if (address_mode == mode_64bit && sizeof (bfd_vma) < 8) + { + (*info->fprintf_func) (info->stream, + _("64-bit address is disabled")); + return -1; + } + if (intel_syntax) { names64 = intel_names64; -- 2.30.2