]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - binutils/ChangeLog
Fixes for memory access violations triggered by running readelf on fuzzed binaries.
[thirdparty/binutils-gdb.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: