From: Alan Modra Date: Wed, 10 Dec 2014 03:36:42 +0000 (+1030) Subject: Don't access elf tdata in dwarf.c without first checking for an ELF bfd X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=fa15f18deaf6f48e0b415ad3e8864de0b1cf6a39;p=binutils-gdb.git Don't access elf tdata in dwarf.c without first checking for an ELF bfd _bfd_dwarf2_find_nearest_line may be called on a COFF bfd. * dwarf2.c (read_address): Check bfd_target_elf_flavour before calling get_elf_backend_data. (_bfd_dwarf2_find_nearest_line): Fix parens. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index f0abc595f89..52c6cd3dcec 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2014-12-10 Alan Modra + + * dwarf2.c (read_address): Check bfd_target_elf_flavour before + calling get_elf_backend_data. + (_bfd_dwarf2_find_nearest_line): Fix parens. + 2014-12-10 Alan Modra PR 17666 diff --git a/bfd/dwarf2.c b/bfd/dwarf2.c index 8375da43ac5..93236a699b8 100644 --- a/bfd/dwarf2.c +++ b/bfd/dwarf2.c @@ -745,7 +745,10 @@ read_alt_indirect_ref (struct comp_unit * unit, static bfd_uint64_t read_address (struct comp_unit *unit, bfd_byte *buf) { - int signed_vma = get_elf_backend_data (unit->abfd)->sign_extend_vma; + int signed_vma = 0; + + if (bfd_get_flavour (unit->abfd) == bfd_target_elf_flavour) + signed_vma = get_elf_backend_data (unit->abfd)->sign_extend_vma; if (signed_vma) { @@ -3849,7 +3852,7 @@ _bfd_dwarf2_find_nearest_line (bfd *abfd, functionname_ptr, linenumber_ptr, discriminator_ptr, - stash)) > 0; + stash) != 0); if ((bfd_vma) (stash->info_ptr - stash->sec_info_ptr) == stash->sec->size)