summaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2014-12-10 14:06:42 +1030
committerAlan Modra <amodra@gmail.com>2014-12-10 14:31:35 +1030
commite3d0fe1e96f7a5e4848177ad744257174c390ed1 (patch)
tree10b6f97fea0a0a9a98f4251d98ecd0aa4144f935 /bfd
parent8eb67463b6edfdb06bb647c53ca02f691b456417 (diff)
downloadbinutils-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/ChangeLog6
-rw-r--r--bfd/dwarf2.c7
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)