From f9ecb0a4402c67583df83bebec0c6ae3191e1e88 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Thu, 9 Jun 2005 14:51:41 +0000 Subject: [PATCH] * objdump.c (disassemble_bytes): Don't crash if q->howto == NULL. If q->howto->name == NULL, print q->howto->type as number instead. (dump_reloc_set): Likewise. --- binutils/ChangeLog | 6 ++++++ binutils/objdump.c | 28 +++++++++++++++------------- 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 23ab45b6c1..3117f14e41 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,9 @@ +2005-06-09 Jakub Jelinek + + * objdump.c (disassemble_bytes): Don't crash if q->howto == NULL. + If q->howto->name == NULL, print q->howto->type as number instead. + (dump_reloc_set): Likewise. + 2005-06-07 Eric Christopher * readelf.c (guess_is_rela): Support ms1. diff --git a/binutils/objdump.c b/binutils/objdump.c index cec11def23..e598a23a9e 100644 --- a/binutils/objdump.c +++ b/binutils/objdump.c @@ -1570,7 +1570,12 @@ disassemble_bytes (struct disassemble_info * info, objdump_print_value (section->vma - rel_offset + q->address, info, TRUE); - printf (": %s\t", q->howto->name); + if (q->howto == NULL) + printf (": *unknown*\t"); + else if (q->howto->name) + printf (": %s\t", q->howto->name); + else + printf (": %d\t", q->howto->type); if (q->sym_ptr_ptr == NULL || *q->sym_ptr_ptr == NULL) printf ("*unknown*"); @@ -2465,23 +2470,20 @@ dump_reloc_set (bfd *abfd, asection *sec, arelent **relpp, long relcount) section_name = NULL; } + bfd_printf_vma (abfd, q->address); + if (q->howto == NULL) + printf (" *unknown* "); + else if (q->howto->name) + printf (" %-16s ", q->howto->name); + else + printf (" %-16d ", q->howto->type); if (sym_name) - { - bfd_printf_vma (abfd, q->address); - if (q->howto->name) - printf (" %-16s ", q->howto->name); - else - printf (" %-16d ", q->howto->type); - objdump_print_symname (abfd, NULL, *q->sym_ptr_ptr); - } + objdump_print_symname (abfd, NULL, *q->sym_ptr_ptr); else { if (section_name == NULL) section_name = "*unknown*"; - bfd_printf_vma (abfd, q->address); - printf (" %-16s [%s]", - q->howto->name, - section_name); + printf ("[%s]", section_name); } if (q->addend)