x86-64: Check for corrupt input with bad relocation
[deliverable/binutils-gdb.git] / bfd / ChangeLog
index 9656c50febfb024f440cc04905861584059aca18..a072ade16b8aa0cdb90ac4a3cef87ee07f2a6fe6 100644 (file)
@@ -1,3 +1,241 @@
+2019-03-15  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/24338
+       * elf64-x86-64.c (elf_x86_64_relocate_section): Check for corrupt
+       input with bad relocation.
+
+22019-03-15  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf64-x86-64.c (elf_x86_64_relocate_section): Re-indent.
+
+2019-03-14  Nick Clifton  <nickc@redhat.com>
+
+       PR 24334
+       * dwarf2.c (struct dwarf2_debug): Add sec_vma_count field.
+       (save_section_vma): Initialise field to the number of entries in
+       the sec_vma table.
+       (section_vma_same): Check that the number of entries in the
+       sec_vma table matches the number of sections in the bfd.
+
+2019-03-14  Nick Clifton  <nickc@redhat.com>
+
+       PR 24333
+       * elflink.c (_bfd_elf_add_default_symbol): Add a check for a NULL
+       section owner pointer when adding the default symbol.
+
+2019-03-14  Nick Clifton  <nickc@redhat.com>
+
+       PR 24332
+       * elflink.c (elf_link_add_object_symbols): Add new local variable
+       extversym_end.  Initialise it to point to the end of the version
+       symbol table, if present.  Check it when initialising and updating
+       the ever pointer.
+
+2019-03-13  Sudakshina Das  <sudi.das@arm.com>
+
+       * elfnn-aarch64.c (PLT_PAC_ENTRY_SIZE, PLT_PAC_SMALL_ENTRY_SIZE): New.
+       (PLT_BTI_PAC_ENTRY_SIZE, PLT_BTI_PAC_SMALL_ENTRY_SIZE): New.
+       (setup_plt_values): Account for PAC or PAC and BTI enabled PLTs.
+       (elfNN_aarch64_size_dynamic_sections): Add checks for PLT_BTI_PAC
+       and PLT_PAC_PLT.
+       (elfNN_aarch64_finish_dynamic_sections): Account for PLT_BTI_PAC.
+       (get_plt_type): Add case for DT_AARCH64_PAC_PLT.
+       (elfNN_aarch64_plt_sym_val): Add cases for PLT_BTI_PAC and PLT_PAC.
+
+2019-03-13  Sudakshina Das  <sudi.das@arm.com>
+           Szabolcs Nagy  <szabolcs.nagy@arm.com>
+
+       * bfd-in.h (aarch64_plt_type, aarch64_enable_bti_type): New.
+       (aarch64_bti_pac_info): New.
+       (bfd_elf64_aarch64_set_options): Add aarch64_bti_pac_info argument.
+       (bfd_elf32_aarch64_set_options): Likewise.
+       * bfd-in2.h: Regenerate
+       * elfnn-aarch64.c (PLT_BTI_ENTRY_SIZE): New.
+       (PLT_BTI_SMALL_ENTRY_SIZE, PLT_BTI_TLSDESC_ENTRY_SIZE): New.
+       (elfNN_aarch64_small_plt0_bti_entry): New.
+       (elfNN_aarch64_small_plt_bti_entry): New.
+       (elfNN_aarch64_tlsdesc_small_plt_bti_entry): New.
+       (elf_aarch64_obj_tdata): Add no_bti_warn and plt_type fields.
+       (elf_aarch64_link_hash_table): Add plt0_entry, plt_entry and
+       tlsdesc_plt_entry_size fields.
+       (elfNN_aarch64_link_hash_table_create): Initialise the new fields.
+       (setup_plt_values): New helper function.
+       (bfd_elfNN_aarch64_set_options): Use new bp_info to set plt sizes and
+       bti enable type.
+       (elfNN_aarch64_allocate_dynrelocs): Use new size members instead of
+       fixed macros.
+       (elfNN_aarch64_size_dynamic_sections): Likewise and add checks.
+       (elfNN_aarch64_create_small_pltn_entry): Use new generic pointers
+       to plt stubs instead of fixed ones and update filling them according
+       to the need for bti.
+       (elfNN_aarch64_init_small_plt0_entry): Likewise.
+       (elfNN_aarch64_finish_dynamic_sections): Likewise.
+       (get_plt_type, elfNN_aarch64_get_synthetic_symtab): New.
+       (elfNN_aarch64_plt_sym_val): Update size accordingly.
+       (elfNN_aarch64_link_setup_gnu_properties): Set up plts if BTI GNU NOTE
+       is set.
+       (bfd_elfNN_get_synthetic_symtab): Define.
+       (elfNN_aarch64_merge_gnu_properties): Give out warning with --force-bti
+       and mising BTI NOTE SECTION.
+
+
+2019-03-13  Sudakshina Das  <sudi.das@arm.com>
+
+       * elf-properties.c (_bfd_elf_link_setup_gnu_properties): Exclude
+       linker created inputs from merge.
+       * elfnn-aarch64.c (struct elf_aarch64_obj_tdata): Add field for
+       GNU_PROPERTY_AARCH64_FEATURE_1_AND properties.
+       (elfNN_aarch64_link_setup_gnu_properties): New.
+       (elfNN_aarch64_merge_gnu_properties): New.
+       (elf_backend_setup_gnu_properties): Define for AArch64.
+       (elf_backend_merge_gnu_properties): Likewise.
+       * elfxx-aarch64.c (_bfd_aarch64_elf_link_setup_gnu_properties): Define.
+       (_bfd_aarch64_elf_parse_gnu_properties): Define.
+       (_bfd_aarch64_elf_merge_gnu_properties): Define.
+       * elfxx-aarch64.h (_bfd_aarch64_elf_link_setup_gnu_properties): Declare.
+       (_bfd_aarch64_elf_parse_gnu_properties): Declare.
+       (_bfd_aarch64_elf_merge_gnu_properties): Declare.
+       (elf_backend_parse_gnu_properties): Define for AArch64.
+
+2019-03-13  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/24322
+       * elfxx-x86.c (_bfd_x86_elf_merge_gnu_properties): Properly
+       merge GNU_PROPERTY_X86_FEATURE_1_[IBT|SHSTK].
+
+2019-03-12  Alan Modra  <amodra@gmail.com>
+
+       * coffcode.h (buy_and_read): Delete unnecessary forward decl.  Add
+       nmemb parameter.  Use bfd_alloc2.
+       (coff_slurp_line_table): Use bfd_alloc2.  Update buy_and_read calls.
+       Delete assertion.
+       (coff_slurp_symbol_table): Use bfd_alloc2 and bfd_zalloc2.
+       (coff_slurp_reloc_table): Use bfd_alloc2.  Update buy_and_read calls.
+       * coffgen.c (coff_get_reloc_upper_bound): Ensure size calculation
+       doesn't overflow.
+       * elf.c (bfd_section_from_shdr): Use bfd_zalloc2.  Style fix.
+       (assign_section_numbers): Style fix.
+       (swap_out_syms): Use bfd_malloc2.
+       (_bfd_elf_get_reloc_upper_bound): Ensure size calculation doesn't
+       overflow.
+       (_bfd_elf_make_empty_symbol): Style fix.
+       (elfobj_grok_stapsdt_note_1): Formatting.
+       * elfcode.h (elf_object_p): Use bfd_alloc2.
+       (elf_write_relocs, elf_write_shdrs_and_ehdr): Likewise.
+       (elf_slurp_symbol_table): Use bfd_zalloc2.
+       (elf_slurp_reloc_table): Use bfd_alloc2.
+       (_bfd_elf_bfd_from_remote_memory): Use bfd_malloc2.
+       * elf64-sparc (elf64_sparc_get_reloc_upper_bound): Ensure
+       size calculation doesn't overflow.
+       (elf64_sparc_get_dynamic_reloc_upper_bound): Likewise.
+       * mach-o.c (bfd_mach_o_get_reloc_upper_bound): Likewise.
+       * pdp11.c (get_reloc_upper_bound): Copy aoutx.h version.
+
+2019-03-08  Alan Modra  <amodra@gmail.com>
+
+       PR 24311
+       * merge.c (merge_strings): Return secinfo.  Don't pad section
+       to alignment here.
+       (_bfd_merge_sections): Pad section to alignment here, if input
+       sections contributing to merged output all pad to alignment.
+       Formatting.
+
+2019-03-06  Nick Clifton  <nickc@redhat.com>
+
+       * dwarf2.c (_bfd_dwarf2_find_symbol_bias): Check for a NULL symbol
+       table pointer.
+       * coffgen.c (coff_find_nearest_line_with_names): Do not call
+       _bfd_dwarf2_find_symbol_bias if there is no symbol table available.
+
+2019-03-01  Andreas Krebbel  <krebbel@linux.ibm.com>
+
+       This reverts commit 5a12586d44fa8d5dfc74cbca4f2f36a273a16335.
+       2019-01-14  Maamoun Tarsha  <maamountk@hotmail.com>
+
+       PR 20113
+       * elf32-s390.c (allocate_dynrelocs): Update comment.
+
+2019-02-28  Tamar Christina  <tamar.christina@arm.com>
+
+       * elf-eh-frame.c (_bfd_elf_write_section_eh_frame): Correct CIE parse.
+
+2019-02-28  Nick Clifton  <nickc@redhat.com>
+
+       PR 24273
+       * elf.c (bfd_elf_string_from_elf_section): Check for a string
+       section that is not NUL terminated.
+
+2019-02-27  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/24276
+       * elf64-x86-64.c (elf_x86_64_check_relocs): Skip symbol defined
+       by linker when checking copy reloc on protected symbol.
+
+2019-02-24  Alan Modra  <amodra@gmail.com>
+
+       PR 24144
+       * pdp11.c (set_section_contents): Revert 2015-02-24 change.
+
+2019-02-20  Eric Tsai  <erictsai@cadence.com>
+
+       * elf32-xtensa.c (is_resolvable_asm_expansion): Scan output
+       sections between the call site and call destination and adjust
+       call distance by the largest alignment.
+
+2019-02-20  Alan Hayward  <alan.hayward@arm.com>
+
+       * elf-bfd.h (elfcore_write_aarch_pauth): Add declaration.
+       * elf.c (elfcore_grok_aarch_pauth): New function.
+       (elfcore_grok_note): Check for NT_ARM_PAC_MASK.
+       (elfcore_write_aarch_pauth): New function.
+       (elfcore_write_register_note): Check for AArch64 pauth section.
+
+2019-02-20  Alan Modra  <amodra@gmail.com>
+
+       PR 24225
+       * elf32-nios2.c (nios2_elf32_relocate_section): Check asprintf
+       return value.
+
+2019-02-20  Michael Roitzsch  <reactorcontrol@icloud.com>
+
+       * configure.ac (SHARED_LIBADD): Add -liberty -lintl for all
+       Darwin hosts, not just or1k.
+       * configure: Regenerate.
+
+2019-02-20  Alan Modra  <amodra@gmail.com>
+
+       PR 24236
+       * archive64.c (_bfd_archive_64_bit_slurp_armap): Move code adding
+       sentinel NUL to string buffer nearer to loop where it is used.
+       Don't go past sentinel when scanning strings, and don't write
+       NUL again.
+       * archive.c (do_slurp_coff_armap): Simplify string handling to
+       archive64.c style.
+
+2019-02-19  Alan Modra  <amodra@gmail.com>
+
+       PR 24235
+       * pei-x86_64.c (pex64_bfd_print_pdata_section): Correct checks
+       attempting to prevent read past end of section.
+
+2019-02-18  Alan Modra  <amodra@gmail.com>
+
+       PR 24225
+       * elf32-nios2.c (nios2_elf32_relocate_section): Use asprintf and
+       PRIx64 to generate warning messages.  Print local sym names too.
+
+2019-02-09  Vineet Gupta  <vgupta@synopsys.com>
+
+       * elf32-arc (INIT_SYM_STRING): Delete.
+       (FINI_SYM_STRING): Likewise.
+       (init_str): Likewise.
+       (fini_str): Likewise.
+
+2019-02-08  Alan Modra  <amodra@gmail.com>
+
+       * elf32-ppc.c (ppc_elf_relocate_section): Add %X to "unsupported
+       for bss-plt" warning to make it an error.
+
 2019-02-07  Eric Botcazou  <ebotcazou@adacore.com>
 
        PR ld/18841
This page took 0.02653 seconds and 4 git commands to generate.