PR24336, buffer overflow in swap_reloca_in
[external/binutils.git] / bfd / ChangeLog
1 2019-03-15  Alan Modra  <amodra@gmail.com>
2
3         PR 24336
4         * elflink.c (elf_link_read_relocs_from_section): Handle fuzzed
5         object files with sh_size not a multiple of sh_entsize.
6
7 2019-03-15  H.J. Lu  <hongjiu.lu@intel.com>
8
9         PR ld/24338
10         * elf64-x86-64.c (elf_x86_64_relocate_section): Check for corrupt
11         input with bad relocation.
12
13 22019-03-15  H.J. Lu  <hongjiu.lu@intel.com>
14
15         * elf64-x86-64.c (elf_x86_64_relocate_section): Re-indent.
16
17 2019-03-14  Nick Clifton  <nickc@redhat.com>
18
19         PR 24334
20         * dwarf2.c (struct dwarf2_debug): Add sec_vma_count field.
21         (save_section_vma): Initialise field to the number of entries in
22         the sec_vma table.
23         (section_vma_same): Check that the number of entries in the
24         sec_vma table matches the number of sections in the bfd.
25
26 2019-03-14  Nick Clifton  <nickc@redhat.com>
27
28         PR 24333
29         * elflink.c (_bfd_elf_add_default_symbol): Add a check for a NULL
30         section owner pointer when adding the default symbol.
31
32 2019-03-14  Nick Clifton  <nickc@redhat.com>
33
34         PR 24332
35         * elflink.c (elf_link_add_object_symbols): Add new local variable
36         extversym_end.  Initialise it to point to the end of the version
37         symbol table, if present.  Check it when initialising and updating
38         the ever pointer.
39
40 2019-03-13  Sudakshina Das  <sudi.das@arm.com>
41
42         * elfnn-aarch64.c (PLT_PAC_ENTRY_SIZE, PLT_PAC_SMALL_ENTRY_SIZE): New.
43         (PLT_BTI_PAC_ENTRY_SIZE, PLT_BTI_PAC_SMALL_ENTRY_SIZE): New.
44         (setup_plt_values): Account for PAC or PAC and BTI enabled PLTs.
45         (elfNN_aarch64_size_dynamic_sections): Add checks for PLT_BTI_PAC
46         and PLT_PAC_PLT.
47         (elfNN_aarch64_finish_dynamic_sections): Account for PLT_BTI_PAC.
48         (get_plt_type): Add case for DT_AARCH64_PAC_PLT.
49         (elfNN_aarch64_plt_sym_val): Add cases for PLT_BTI_PAC and PLT_PAC.
50
51 2019-03-13  Sudakshina Das  <sudi.das@arm.com>
52             Szabolcs Nagy  <szabolcs.nagy@arm.com>
53
54         * bfd-in.h (aarch64_plt_type, aarch64_enable_bti_type): New.
55         (aarch64_bti_pac_info): New.
56         (bfd_elf64_aarch64_set_options): Add aarch64_bti_pac_info argument.
57         (bfd_elf32_aarch64_set_options): Likewise.
58         * bfd-in2.h: Regenerate
59         * elfnn-aarch64.c (PLT_BTI_ENTRY_SIZE): New.
60         (PLT_BTI_SMALL_ENTRY_SIZE, PLT_BTI_TLSDESC_ENTRY_SIZE): New.
61         (elfNN_aarch64_small_plt0_bti_entry): New.
62         (elfNN_aarch64_small_plt_bti_entry): New.
63         (elfNN_aarch64_tlsdesc_small_plt_bti_entry): New.
64         (elf_aarch64_obj_tdata): Add no_bti_warn and plt_type fields.
65         (elf_aarch64_link_hash_table): Add plt0_entry, plt_entry and
66         tlsdesc_plt_entry_size fields.
67         (elfNN_aarch64_link_hash_table_create): Initialise the new fields.
68         (setup_plt_values): New helper function.
69         (bfd_elfNN_aarch64_set_options): Use new bp_info to set plt sizes and
70         bti enable type.
71         (elfNN_aarch64_allocate_dynrelocs): Use new size members instead of
72         fixed macros.
73         (elfNN_aarch64_size_dynamic_sections): Likewise and add checks.
74         (elfNN_aarch64_create_small_pltn_entry): Use new generic pointers
75         to plt stubs instead of fixed ones and update filling them according
76         to the need for bti.
77         (elfNN_aarch64_init_small_plt0_entry): Likewise.
78         (elfNN_aarch64_finish_dynamic_sections): Likewise.
79         (get_plt_type, elfNN_aarch64_get_synthetic_symtab): New.
80         (elfNN_aarch64_plt_sym_val): Update size accordingly.
81         (elfNN_aarch64_link_setup_gnu_properties): Set up plts if BTI GNU NOTE
82         is set.
83         (bfd_elfNN_get_synthetic_symtab): Define.
84         (elfNN_aarch64_merge_gnu_properties): Give out warning with --force-bti
85         and mising BTI NOTE SECTION.
86
87
88 2019-03-13  Sudakshina Das  <sudi.das@arm.com>
89
90         * elf-properties.c (_bfd_elf_link_setup_gnu_properties): Exclude
91         linker created inputs from merge.
92         * elfnn-aarch64.c (struct elf_aarch64_obj_tdata): Add field for
93         GNU_PROPERTY_AARCH64_FEATURE_1_AND properties.
94         (elfNN_aarch64_link_setup_gnu_properties): New.
95         (elfNN_aarch64_merge_gnu_properties): New.
96         (elf_backend_setup_gnu_properties): Define for AArch64.
97         (elf_backend_merge_gnu_properties): Likewise.
98         * elfxx-aarch64.c (_bfd_aarch64_elf_link_setup_gnu_properties): Define.
99         (_bfd_aarch64_elf_parse_gnu_properties): Define.
100         (_bfd_aarch64_elf_merge_gnu_properties): Define.
101         * elfxx-aarch64.h (_bfd_aarch64_elf_link_setup_gnu_properties): Declare.
102         (_bfd_aarch64_elf_parse_gnu_properties): Declare.
103         (_bfd_aarch64_elf_merge_gnu_properties): Declare.
104         (elf_backend_parse_gnu_properties): Define for AArch64.
105
106 2019-03-13  H.J. Lu  <hongjiu.lu@intel.com>
107
108         PR ld/24322
109         * elfxx-x86.c (_bfd_x86_elf_merge_gnu_properties): Properly
110         merge GNU_PROPERTY_X86_FEATURE_1_[IBT|SHSTK].
111
112 2019-03-12  Alan Modra  <amodra@gmail.com>
113
114         * coffcode.h (buy_and_read): Delete unnecessary forward decl.  Add
115         nmemb parameter.  Use bfd_alloc2.
116         (coff_slurp_line_table): Use bfd_alloc2.  Update buy_and_read calls.
117         Delete assertion.
118         (coff_slurp_symbol_table): Use bfd_alloc2 and bfd_zalloc2.
119         (coff_slurp_reloc_table): Use bfd_alloc2.  Update buy_and_read calls.
120         * coffgen.c (coff_get_reloc_upper_bound): Ensure size calculation
121         doesn't overflow.
122         * elf.c (bfd_section_from_shdr): Use bfd_zalloc2.  Style fix.
123         (assign_section_numbers): Style fix.
124         (swap_out_syms): Use bfd_malloc2.
125         (_bfd_elf_get_reloc_upper_bound): Ensure size calculation doesn't
126         overflow.
127         (_bfd_elf_make_empty_symbol): Style fix.
128         (elfobj_grok_stapsdt_note_1): Formatting.
129         * elfcode.h (elf_object_p): Use bfd_alloc2.
130         (elf_write_relocs, elf_write_shdrs_and_ehdr): Likewise.
131         (elf_slurp_symbol_table): Use bfd_zalloc2.
132         (elf_slurp_reloc_table): Use bfd_alloc2.
133         (_bfd_elf_bfd_from_remote_memory): Use bfd_malloc2.
134         * elf64-sparc (elf64_sparc_get_reloc_upper_bound): Ensure
135         size calculation doesn't overflow.
136         (elf64_sparc_get_dynamic_reloc_upper_bound): Likewise.
137         * mach-o.c (bfd_mach_o_get_reloc_upper_bound): Likewise.
138         * pdp11.c (get_reloc_upper_bound): Copy aoutx.h version.
139
140 2019-03-08  Alan Modra  <amodra@gmail.com>
141
142         PR 24311
143         * merge.c (merge_strings): Return secinfo.  Don't pad section
144         to alignment here.
145         (_bfd_merge_sections): Pad section to alignment here, if input
146         sections contributing to merged output all pad to alignment.
147         Formatting.
148
149 2019-03-06  Nick Clifton  <nickc@redhat.com>
150
151         * dwarf2.c (_bfd_dwarf2_find_symbol_bias): Check for a NULL symbol
152         table pointer.
153         * coffgen.c (coff_find_nearest_line_with_names): Do not call
154         _bfd_dwarf2_find_symbol_bias if there is no symbol table available.
155
156 2019-03-01  Andreas Krebbel  <krebbel@linux.ibm.com>
157
158         This reverts commit 5a12586d44fa8d5dfc74cbca4f2f36a273a16335.
159         2019-01-14  Maamoun Tarsha  <maamountk@hotmail.com>
160
161         PR 20113
162         * elf32-s390.c (allocate_dynrelocs): Update comment.
163
164 2019-02-28  Tamar Christina  <tamar.christina@arm.com>
165
166         * elf-eh-frame.c (_bfd_elf_write_section_eh_frame): Correct CIE parse.
167
168 2019-02-28  Nick Clifton  <nickc@redhat.com>
169
170         PR 24273
171         * elf.c (bfd_elf_string_from_elf_section): Check for a string
172         section that is not NUL terminated.
173
174 2019-02-27  H.J. Lu  <hongjiu.lu@intel.com>
175
176         PR ld/24276
177         * elf64-x86-64.c (elf_x86_64_check_relocs): Skip symbol defined
178         by linker when checking copy reloc on protected symbol.
179
180 2019-02-24  Alan Modra  <amodra@gmail.com>
181
182         PR 24144
183         * pdp11.c (set_section_contents): Revert 2015-02-24 change.
184
185 2019-02-20  Eric Tsai  <erictsai@cadence.com>
186
187         * elf32-xtensa.c (is_resolvable_asm_expansion): Scan output
188         sections between the call site and call destination and adjust
189         call distance by the largest alignment.
190
191 2019-02-20  Alan Hayward  <alan.hayward@arm.com>
192
193         * elf-bfd.h (elfcore_write_aarch_pauth): Add declaration.
194         * elf.c (elfcore_grok_aarch_pauth): New function.
195         (elfcore_grok_note): Check for NT_ARM_PAC_MASK.
196         (elfcore_write_aarch_pauth): New function.
197         (elfcore_write_register_note): Check for AArch64 pauth section.
198
199 2019-02-20  Alan Modra  <amodra@gmail.com>
200
201         PR 24225
202         * elf32-nios2.c (nios2_elf32_relocate_section): Check asprintf
203         return value.
204
205 2019-02-20  Michael Roitzsch  <reactorcontrol@icloud.com>
206
207         * configure.ac (SHARED_LIBADD): Add -liberty -lintl for all
208         Darwin hosts, not just or1k.
209         * configure: Regenerate.
210
211 2019-02-20  Alan Modra  <amodra@gmail.com>
212
213         PR 24236
214         * archive64.c (_bfd_archive_64_bit_slurp_armap): Move code adding
215         sentinel NUL to string buffer nearer to loop where it is used.
216         Don't go past sentinel when scanning strings, and don't write
217         NUL again.
218         * archive.c (do_slurp_coff_armap): Simplify string handling to
219         archive64.c style.
220
221 2019-02-19  Alan Modra  <amodra@gmail.com>
222
223         PR 24235
224         * pei-x86_64.c (pex64_bfd_print_pdata_section): Correct checks
225         attempting to prevent read past end of section.
226
227 2019-02-18  Alan Modra  <amodra@gmail.com>
228
229         PR 24225
230         * elf32-nios2.c (nios2_elf32_relocate_section): Use asprintf and
231         PRIx64 to generate warning messages.  Print local sym names too.
232
233 2019-02-09  Vineet Gupta  <vgupta@synopsys.com>
234
235         * elf32-arc (INIT_SYM_STRING): Delete.
236         (FINI_SYM_STRING): Likewise.
237         (init_str): Likewise.
238         (fini_str): Likewise.
239
240 2019-02-08  Alan Modra  <amodra@gmail.com>
241
242         * elf32-ppc.c (ppc_elf_relocate_section): Add %X to "unsupported
243         for bss-plt" warning to make it an error.
244
245 2019-02-07  Eric Botcazou  <ebotcazou@adacore.com>
246
247         PR ld/18841
248         * elf32-sparc.c (elf32_sparc_reloc_type_class): Return
249         reloc_class_ifunc for ifunc symbols.
250         * elf64-sparc.c (elf64_sparc_reloc_type_class): Likewise.
251
252 2019-02-07  Eric Botcazou  <ebotcazou@adacore.com>
253
254         * elf32-visium.c (visium_elf_howto_parity_reloc): Minor tweak.
255         <R_VISIUM_PC16>: Use explicit range test to detect an overflow.
256
257 2019-02-07  Nick Clifton  <nickc@redhat.com>
258
259         * config.bfd: Move the powerpc-lynxos and powerpc-windiss targets
260         into the definitely obsolete list.
261
262 2019-02-05  H.J. Lu  <hongjiu.lu@intel.com>
263
264         PR ld/24151
265         * elf64-x86-64.c (elf_x86_64_need_pic): Check
266         SYMBOL_DEFINED_NON_SHARED_P instead of def_regular.
267         (elf_x86_64_relocate_section): Move PIC check for PC-relative
268         relocations to ...
269         (elf_x86_64_check_relocs): Here.
270         (elf_x86_64_finish_dynamic_symbol): Use SYMBOL_DEFINED_NON_SHARED_P
271         to check if a symbol is defined in a non-shared object.
272         * elfxx-x86.h (SYMBOL_DEFINED_NON_SHARED_P): New.
273
274 2019-01-21  Sergio Durigan Junior  <sergiodj@redhat.com>
275
276         * elf32-arm.c (elf32_arm_final_link_relocate): Use 'llabs' instead
277         of 'labs' (and fix GCC warning).
278
279 2019-01-25  Nick Clifton  <nickc@redhat.com>
280
281         * po/ru.po: Updated Russian translation.
282
283 2019-01-23  Nick Clifton  <nickc@redhat.com>
284
285         * po/fr.po: Updated French translation.
286
287 2019-01-21  Nick Clifton  <nickc@redhat.com>
288
289         * po/pt.po: Updated Portuguese translation.
290         * po/uk.po: Updated Ukranian translation.
291
292 2019-01-21  Yuri Chornoivan  <yurchor@ukr.net>
293
294         PR 24108
295         * elf32-nds32.c (nds32_relocate_section): Add space between words
296         in error message.
297         * elfnn-riscv.c (riscv_version_mismatch): Fix spelling mistake in
298         error message.
299         (riscv_i_or_e_p): Likewise.
300         (riscv_merge_arch_attr_info): Likewise.
301
302 2019-01-19  Nick Clifton  <nickc@redhat.com>
303
304         * version.m4: Reset to 2.32.51
305         * configure: Regenerate.
306         * po/bfd.pot: Regenerate.
307
308 2018-06-24  Nick Clifton  <nickc@redhat.com>
309
310         2.32 branch created.
311
312 2019-01-16  Kito Cheng  <kito@andestech.com>
313
314         * elf-attrs.c (vendor_obj_attr_size): Return 0 if size is 0 even
315         for OBJ_ATTR_PROC.
316
317 2019-01-16  Kito Cheng  <kito@andestech.com>
318             Nelson Chu  <nelson@andestech.com>
319
320         * elfnn-riscv.c (in_subsets): New.
321         (out_subsets): Likewise.
322         (merged_subsets): Likewise.
323         (riscv_std_ext_p): Likewise.
324         (riscv_non_std_ext_p): Likewise.
325         (riscv_std_sv_ext_p): Likewise.
326         (riscv_non_std_sv_ext_p): Likewise.
327         (riscv_version_mismatch): Likewise.
328         (riscv_i_or_e_p): Likewise.
329         (riscv_merge_std_ext): Likewise.
330         (riscv_merge_non_std_and_sv_ext): Likewise.
331         (riscv_merge_arch_attr_info): Likewise.
332         (riscv_merge_attributes): Likewise.
333         (_bfd_riscv_elf_merge_private_bfd_data): Merge attribute.
334
335         * elfnn-riscv.c (riscv_elf_obj_attrs_arg_type): New.
336         (elf_backend_obj_attrs_vendor): Define.
337         (elf_backend_obj_attrs_section_type): Likewise.
338         (elf_backend_obj_attrs_section): Likewise.
339         (elf_backend_obj_attrs_arg_type): Define as
340         riscv_elf_obj_attrs_arg_type.
341         * elfxx-riscv.c (riscv_estimate_digit): New.
342         (riscv_estimate_arch_strlen1): Likewise.
343         (riscv_estimate_arch_strlen): Likewise.
344         (riscv_arch_str1): Likewise.
345         (riscv_arch_str): Likewise.
346         * elfxx-riscv.h (riscv_arch_str): Declare.
347
348 2019-01-14  John Darrington <john@darrington.wattle.id.au>
349
350         * bfd-in2.h [BFD_RELOC_S12Z_OPR]: New reloc.
351         * libbfd.h: regen.
352         * elf32-s12z.c (eld_s12z_howto_table): R_S12Z_OPR takes non zero
353         source field.  (md_apply_fix): Apply final fix
354         to BFD_RELOC_S12Z_OPR.
355         * reloc.c[BFD_RELOC_S12Z_OPR]: New reloc.
356
357 2019-01-14  Maamoun Tarsha  <maamountk@hotmail.com>
358
359         PR 20113
360         * elf32-s390.c (allocate_dynrelocs): Update comment.
361
362 2019-01-09  Andrew Paprocki  <andrew@ishiboo.com>
363
364         * warning.m4: Adjust egrep pattern for non-GNU compilers.
365         * configure: Regenerate.
366
367 2019-01-08  Alan Modra  <amodra@gmail.com>
368
369         PR 23699
370         PR 24065
371         * ihex.c (ihex_write_object_contents): Properly check 32-bit
372         address range.
373
374 2019-01-05  Yoshinori Sato <ysato@users.sourceforge.jp>
375
376         * bfd/archures.c: Add bfd_mach_rx_v2 and bfd_mach_rx_v3.
377         * bfd/bfd-in2.h: Regenerate.
378         * bfd/cpu-rx.c (arch_info_struct): Add RXv2 and RXv3 entry.
379         * bfd/elf32-rx.c (elf32_rx_machine): Add RXv2 and RXv3 support.
380
381 2019-01-04  Lifang Xia  <lifang_xia@c-sky.com>
382
383         * config.bfd (csky-*-elf* | csky-*-linux*): Modify the csky
384         default target, little endian target is more suitable.
385
386 2019-01-04  Alan Modra  <amodra@gmail.com>
387
388         PR 24061
389         PR 21786
390         * coff-rs6000.c (GET_VALUE_IN_FIELD): Add base parameter and
391         adjust all callers.
392         (EQ_VALUE_IN_FIELD): Likewise.
393         * coff64-rs6000.c (GET_VALUE_IN_FIELD): Likewise.
394
395 2019-01-01  Alan Modra  <amodra@gmail.com>
396
397         Update year range in copyright notice of all files.
398
399 For older changes see ChangeLog-2018
400 \f
401 Copyright (C) 2019 Free Software Foundation, Inc.
402
403 Copying and distribution of this file, with or without modification,
404 are permitted in any medium without royalty provided the copyright
405 notice and this notice are preserved.
406
407 Local Variables:
408 mode: change-log
409 left-margin: 8
410 fill-column: 74
411 version-control: never
412 End: