Fixes for memory access violations triggered by running readelf on fuzzed binaries.
[external/binutils.git] / binutils / ChangeLog
1 2015-02-13  Nick Clifton  <nickc@redhat.com>
2
3         PR binutils/17512
4         * dwarf.c (read_leb128): Fix test for shift becoming too large.
5
6         * coffgrok.c (do_define): Add check for type size overflow.
7         * srconv.c (walk_tree_sfile): Check that enough sections are
8         available before parsing.
9         (prescan): Likewise.
10
11         PR binutils/17531
12         * dwarf.c (display_debug_aranges): Add check for an excessive
13         ar_length value.
14         (process_cu_tu_index): Check for a row * columns sum being too
15         large.
16
17 2015-02-13  Alan Modra  <amodra@gmail.com>
18
19         * dwarf.c: Formatting, whitespace.
20         (process_debug_info): Style fix.
21
22 2015-02-11  Nick Clifton  <nickc@redhat.com>
23
24         * rl78-decode.opc: Add 'a' attribute to instructions that support
25         [HL+0] addressing.
26         * rl78-decode.c: Regenerate.
27         * rl78-dis.c (print_insn_rl78): Display the offset in [HL+0]
28         addresses.
29
30 2015-02-11  Nick Clifton  <nickc@redhat.com>
31
32         PR binutils/17531
33         * dwarf.c (display_debug_pubnames_worker): Work around compiler
34         bug checking address ranges.
35         (display_debug_frames): Likewise.
36         (display_gdb_index): Likewise.
37         (process_cu_tu_index): Add range check on the ncols value.
38
39 2015-02-10  Nick Clifton  <nickc@redhat.com>
40
41         PR binutils/17512
42         * dwarf.c (eh_addr_size): Use an unsigned type.
43         (size_of_encoded_value): Return an unsigned type.
44         (read_leb128): Break if the shift becomes too big.
45         (process_extended_line_op): Do not read the address if the length
46         is too long.
47         (read_cie): Warn and fail if the pointer size or segment size are
48         too big.
49         * dwarf.h (DWARF2_External_LineInfo): Delete unused and incorrect
50         structure definition.
51         (DWARF2_External_PubNames): Likewise.
52         (DWARF2_External_CompUnit): Likewise.
53         (DWARF2_External_ARange): Likewise.
54         (DWARF2_Internal_LineInfo): Use dwarf_vma type for
55         li_prologue_length.
56         (eh_addr_size): Update prototype.
57
58         PR binutils/17531
59         * dwarf.c (process_debug_info): Zero the debug information array
60         since correct initialisation cannot be relied upon.
61         (process_cu_tu_index): Improve range checks.
62
63         PR binutils/17531
64         * dwarf.c (display_debug_pubnames_worker): Use dwarf_vma type for
65         offset.
66         * readelf.c (dump_relocations): Handle printing offsets which are
67         MIN_INT.
68         (process_corefile_note_segment): Add range check of the namesz
69         field.
70
71 2015-02-09  Mark Wielaard  <mjw@redhat.com>
72
73         * dwarf.c (read_and_display_attr_value): Handle DW_LANG_Fortran03
74         and DW_LANG_Fortran08.
75
76 2015-02-06  Nick Clifton  <nickc@redhat.com>
77
78         PR binutils/17512
79         * dwarf.c (display_debug_frames): Fix range checks to work on
80         32-bit binaries complied on a 64-bit host.
81
82         PR binutils/17531
83         * dwarf.c (xcmalloc): Fail if the arguments are too big.
84         (xcrealloc): Likewise.
85         (xcalloc2): Likewise.
86         * readelf.c (process_mips_specific): Fail if an option has an
87         invalid size.
88
89 2015-02-05  Alan Modra  <amodra@gmail.com>
90
91         PR binutils/17926
92         * dwarf.c (dwarf_select_sections_by_letters): Don't refer to optarg.
93
94 2015-02-04  Nick Clifton  <nickc@redhat.com>
95
96         PR binutils/17531
97         * dwarf.c (read_and_display_attr_value): Test for a block length
98         being so long that it wraps around to before the start of the block.
99         (process_debug_info): Test for section_begin wrapping around to
100         before the start of the section.
101         (display_gdb_index): Test for num_cus being so large that the end
102         address wraps around to before the start of the section.
103         (process_cu_tu_index): Test for j being so large that the section
104         index pool wraps around to before the start of the section.
105
106 2015-02-03  Nick Clifton  <nickc@redhat.com>
107
108         PR binutils/17531
109         * dwarf.c (process_debug_info): Add range check.
110         (display_debug_pubnames_worker): Likewise.
111         (display_gdb_index): Fix range check.
112         (process_cu_tu_index): Add range check.
113         * readelf.c (get_data): Change parameter types from size_t to
114         bfd_size_type.  Add checks for loss of accuracy when casting from
115         bfd_size_type to size_t.
116         (get_dynamic_data): Likewise.
117         (process_section_groups): Limit number of error messages.
118
119 2015-02-03  Nick Clifton  <nickc@redhat.com>
120
121         PR binutils/17512
122         * objdump.c (display_any_bfd): Fail if archives nest too deeply.
123
124 2015-01-28  James Bowman  <james.bowman@ftdichip.com>
125
126         * readelf.c: Add FT32 support.
127
128 2015-01-27  Nick Clifton  <nickc@redhat.com>
129
130         PR binutils/17512
131         * dlltool.c (identify_search_archive): If the last archive was the
132         same as the current archive, terminate the loop.
133
134         * addr2line.c (slurp_symtab): If the symcount is zero, free the
135         symbol table pointer.
136
137         * rcparse.y: Add checks to avoid integer divide by zero.
138         * rescoff.c (read_coff_rsrc): Add check on the size of the
139         resource section.
140         (read_coff_res_dir): Add check on the nesting level.
141         Check for resource names overrunning the buffer.
142         * resrc.c (write_rc_messagetable): Update formatting.
143         Add check of 'elen' being zero.
144
145 2015-01-23  Nick Clifton  <nickc@redhat.com>
146
147         * nlmconv.c (powerpc_mangle_relocs): Fix build errors introduced
148         by recent delta, when compiling on for a 32-bit host.
149
150 2015-01-21  Nick Clifton  <nickc@redhat.com>
151
152         PR binutils/17512
153         * addr2line.c (main): Call bfd_set_error_program_name.
154         * ar.c (main): Likewise.
155         * coffdump.c (main): Likewise.
156         * cxxfilt.c (main): Likewise.
157         * dlltool.c (main): Likewise.
158         * nlmconv.c (main): Likewise.
159         * nm.c (main): Likewise.
160         * objdump.c (main): Likewise.
161         * size.c (main): Likewise.
162         * srconv.c (main): Likewise.
163         * strings.c (main): Likewise.
164         * sysdump.c (main): Likewise.
165         * windmc.c (main): Likewise.
166         * windres.c (main): Likewise.
167         * objcopy.c (main): Likewise.
168         (copy_relocations_in_section): Check for relocs without associated
169         symbol pointers.
170
171 2015-01-21  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
172
173         * MAINTAINERS: Add self to ARM maintainers list.
174
175 2015-01-21  Nick Clifton  <nickc@redhat.com>
176
177         PR binutils/17512
178         * coffgrok.c (do_type): Check that computed ref exists.
179         (doit): Add range checks when computing section for scope.
180
181 2015-01-12  H.J. Lu  <hongjiu.lu@intel.com>
182
183         * dwarf.c (process_debug_info): Properly check abbrev size.
184
185 2015-01-12  Nick Clifton  <nickc@redhat.com>
186
187         PR binutils/17531
188         * dwarf.c (process_debug_info): Check for abbrev_base being larger
189         than the section size.
190         (process_cu_tu_index): Use xcalloc2 to allocate the CU and TU
191         arrays.
192         (xcalloc2): New function.  Like xcalloc, but checks for overflow.
193         (display_debug_addr): Use xcalloc to allocate the debug_addr_info
194         array.  Check for an address_base that is too large.
195
196         * dwarf.h (xcalloc2): Prototype.
197
198 2015-01-12  Alan Modra  <amodra@gmail.com>
199
200         * prdbg.c (print_debugging_info): Don't use void* for function
201         pointer param.
202         * budbg.h (print_debugging_info): Update prototype.
203
204 2015-01-08  Nick Clifton  <nickc@redhat.com>
205
206         PR binutils/17512
207         * ojcopy.c (copy_object): Free the symbol table if no symbols
208         could be loaded.
209         (copy_file): Use bfd_close_all_done to close files that could not
210         be copied.
211
212         * sysdump.c (getINT): Fail if reading off the end of the buffer.
213         Replace call to abort with a call to fatal.
214         (getCHARS): Prevetn reading off the end of the buffer.
215
216         * nlmconv.c (i386_mangle_relocs): Skip relocs without an
217         associated symbol.
218         (powerpc_mangle_relocs): Skip unrecognised relocs.  Check address
219         range before applying a reloc.
220
221 2015-01-07  Nick Clifton  <nickc@redhat.com>
222
223         PR binutils/17512
224         * dlltool.c (scan_obj_file): Break loop if the last archive
225         displayed matches the current archive.
226
227         * objdump.c (display_any_bfd): Add a depth limit to nested archive
228         display in order to avoid infinite loops.
229         * srconv.c: Replace calls to abort with calls to fatal with an
230         error message.
231
232 2015-01-06  Nick Clifton  <nickc@redhat.com>
233
234         PR binutils/17512
235         * coffdump.c (dump_coff_section): Check for a symbol being
236         available before printing its name.
237         (main): Check the return value from coff_grok.
238         * coffgrok.c: Reformat and tidy.
239         Add range checks to most functions.
240         (coff_grok): Return NULL if the input bfd is not in a COFF
241         format.
242         * coffgrok.h: Reformat and tidy.
243         (struct coff_section): Change the nrelocs field to unsigned.
244         * srconv.c (main): Check the return value from coff_grok.
245
246 2015-01-05  Nick Clifton  <nickc@redhat.com>
247
248         PR binutils/17512
249         * nm.c (print_symbol): Add 'is_synthetic' parameter.  Use it to
250         help initialize the info.elfinfo field.
251         (print_size_symbols): Add 'synth_count' parameter.  Use it to set
252         the is_synthetic parameter when calling print_symbol.
253         (print_symbols): Likewise.
254         (display_rel_file): Pass synth_count to printing function.
255         (display_archive): Break loop if the last archive displayed
256         matches the current archive.
257         * size.c (display_archive): Likewise.
258
259 2015-01-05  Nick Clifton  <nickc@redhat.com>
260
261         PR binutils/17531
262         * dwarf.c (alloc_num_debug_info_entries): New variable.
263         (process_debug_info): Set it.  Use it to avoid displaying
264         attributes for which there is no info.
265         (display_debug_abbrev): Check that the debug_info_entry index is
266         valid before using it.
267         (display_loc_list_dwo): Likewise.
268         (process_cu_tu_index): Add range check for an overlarge dw_sect
269         value.
270         (free_debug_memory): Reset alloc_num_debug_info_entries.
271         * readelf.c (slurp_ia64_unwind_table): Warn if the reloc could not
272         be indentified.
273         (dynamic_section_mips_val): Warn if the timestamp is invalid.
274         (print_mips_got_entry): Add a data_end parameter.  Warn if a read
275         would go beyond the end of the data, and return an error value.
276         (process_mips_specific): Do not read options from beyond the end
277         of the section.
278         Correct code to display optional data at the end of an option.
279         Warn if there are too many GOT symbols.
280         Update calls to print_mips_got_entry, and handle error returns.
281
282 2015-01-05  Daniel Klauer  <daniel.c.klauer@web.de>
283
284         PR binutils/17489
285         * doc/binutils.texi (dlltool): Correct description of --kill-at
286         option.
287
288 2015-01-01  Alan Modra  <amodra@gmail.com>
289
290         * version.c (print_version): Just print current year.
291
292 2015-01-01  Alan Modra  <amodra@gmail.com>
293
294         Update year range in copyright notice of all files.
295
296 For older changes see ChangeLog-2014
297 \f
298 Copyright (C) 2015 Free Software Foundation, Inc.
299
300 Copying and distribution of this file, with or without modification,
301 are permitted in any medium without royalty provided the copyright
302 notice and this notice are preserved.
303
304 Local Variables:
305 mode: change-log
306 left-margin: 8
307 fill-column: 74
308 version-control: never
309 End: