diff options
author | Alan Modra <amodra@gmail.com> | 2014-12-10 14:06:42 +1030 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2014-12-10 14:31:35 +1030 |
commit | e3d0fe1e96f7a5e4848177ad744257174c390ed1 (patch) | |
tree | 10b6f97fea0a0a9a98f4251d98ecd0aa4144f935 /bfd | |
parent | 8eb67463b6edfdb06bb647c53ca02f691b456417 (diff) | |
download | binutils-e3d0fe1e96f7a5e4848177ad744257174c390ed1.tar.gz binutils-e3d0fe1e96f7a5e4848177ad744257174c390ed1.tar.bz2 binutils-e3d0fe1e96f7a5e4848177ad744257174c390ed1.zip |
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.
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/ChangeLog | 6 | ||||
-rw-r--r-- | bfd/dwarf2.c | 7 |
2 files changed, 11 insertions, 2 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 941e0457cb2..3942b4e0389 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2014-12-10 Alan Modra <amodra@gmail.com> + + * dwarf2.c (read_address): Check bfd_target_elf_flavour before + calling get_elf_backend_data. + (_bfd_dwarf2_find_nearest_line): Fix parens. + 2014-12-05 H.J. Lu <hongjiu.lu@intel.com> * elf64-x86-64.c (bfd_elf32_get_synthetic_symtab): New. 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) |