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