diff options
author | Nick Clifton <nickc@redhat.com> | 2015-01-05 23:13:50 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2015-01-05 23:13:50 +0000 |
commit | 896ca0981329171639b1fe0b934393a79ef4fdfb (patch) | |
tree | ac6f2a1d6ab8084254dac309ba83173eb962d5c2 /bfd/elfcode.h | |
parent | 82b1b41bcdc6d01fdbd94b246e24a8a8f8c2bddd (diff) | |
download | fsf-binutils-gdb-896ca0981329171639b1fe0b934393a79ef4fdfb.zip fsf-binutils-gdb-896ca0981329171639b1fe0b934393a79ef4fdfb.tar.gz fsf-binutils-gdb-896ca0981329171639b1fe0b934393a79ef4fdfb.tar.bz2 |
More fixes for invalid memory accesses triggered by fuzzed binaries.
PR binutils/17512
* nm.c (print_symbol): Add 'is_synthetic' parameter. Use it to
help initialize the info.elfinfo field.
(print_size_symbols): Add 'synth_count' parameter. Use it to set
the is_synthetic parameter when calling print_symbol.
(print_symbols): Likewise.
(display_rel_file): Pass synth_count to printing function.
(display_archive): Break loop if the last archive displayed
matches the current archive.
* size.c (display_archive): Likewise.
* archive.c (do_slurp_bsd_armap): Make sure that the parsed sized
is at least big enough for the header to be read.
* elf32-i386.c (elf_i386_get_plt_sym_val): Skip unknown relocs.
* mach-o.c (bfd_mach_o_get_synthetic_symtab): Add range checks.
(bfd_mach_o_read_command): Prevetn duplicate error messages about
unrecognized commands.
* syms.c (_bfd_stab_section_find_nearest_line): Add range checks
when indexing into the string table.
Diffstat (limited to 'bfd/elfcode.h')
-rw-r--r-- | bfd/elfcode.h | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/bfd/elfcode.h b/bfd/elfcode.h index 481b007..1a9d304 100644 --- a/bfd/elfcode.h +++ b/bfd/elfcode.h @@ -1214,10 +1214,9 @@ elf_slurp_symbol_table (bfd *abfd, asymbol **symptrs, bfd_boolean dynamic) for (isym = isymbuf + 1, sym = symbase; isym < isymend; isym++, sym++) { memcpy (&sym->internal_elf_sym, isym, sizeof (Elf_Internal_Sym)); - sym->symbol.the_bfd = abfd; + sym->symbol.the_bfd = abfd; sym->symbol.name = bfd_elf_sym_name (abfd, hdr, isym, NULL); - sym->symbol.value = isym->st_value; if (isym->st_shndx == SHN_UNDEF) |