Basic error checking for mach-o
Fixes lots of places the fuzzers are going to find, and the one they
already hit.
* mach-o.c (bfd_mach_o_read_dylinker): Don't read past end of
command. Check name offset is within command.
(bfd_mach_o_read_dylib, bfd_mach_o_read_prebound_dylib),
(bfd_mach_o_read_prebind_cksum, bfd_mach_o_read_twolevel_hints),
(bfd_mach_o_read_fvmlib, bfd_mach_o_read_dysymtab),
(bfd_mach_o_read_symtab, bfd_mach_o_read_uuid),
(bfd_mach_o_read_linkedit, bfd_mach_o_read_str),
(bfd_mach_o_read_dyld_info, bfd_mach_o_read_version_min),
(bfd_mach_o_read_encryption_info, bfd_mach_o_read_source_version),
(bfd_mach_o_read_encryption_info_64, bfd_mach_o_read_main),
(bfd_mach_o_read_note, bfd_mach_o_read_build_version),
(bfd_mach_o_read_segment): Similarly.
(bfd_mach_o_read_thread): Properly bound check thread struct.
Don't repeat checks on second loop.
(bfd_mach_o_read_command): Fail on invalid command length.
2020-01-06 00:31:55 +01:00
|
|
|
|
2020-01-06 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* mach-o.c (bfd_mach_o_read_dylinker): Don't read past end of
|
|
|
|
|
command. Check name offset is within command.
|
|
|
|
|
(bfd_mach_o_read_dylib, bfd_mach_o_read_prebound_dylib),
|
|
|
|
|
(bfd_mach_o_read_prebind_cksum, bfd_mach_o_read_twolevel_hints),
|
|
|
|
|
(bfd_mach_o_read_fvmlib, bfd_mach_o_read_dysymtab),
|
|
|
|
|
(bfd_mach_o_read_symtab, bfd_mach_o_read_uuid),
|
|
|
|
|
(bfd_mach_o_read_linkedit, bfd_mach_o_read_str),
|
|
|
|
|
(bfd_mach_o_read_dyld_info, bfd_mach_o_read_version_min),
|
|
|
|
|
(bfd_mach_o_read_encryption_info, bfd_mach_o_read_source_version),
|
|
|
|
|
(bfd_mach_o_read_encryption_info_64, bfd_mach_o_read_main),
|
|
|
|
|
(bfd_mach_o_read_note, bfd_mach_o_read_build_version),
|
|
|
|
|
(bfd_mach_o_read_segment): Similarly.
|
|
|
|
|
(bfd_mach_o_read_thread): Properly bound check thread struct.
|
|
|
|
|
Don't repeat checks on second loop.
|
|
|
|
|
(bfd_mach_o_read_command): Fail on invalid command length.
|
|
|
|
|
|
2020-01-02 08:09:32 +01:00
|
|
|
|
2020-01-04 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* format.c (bfd_check_format_matches): Add preserve_match.
|
|
|
|
|
Save initial bfd state in "preserve", matched bfd state in
|
|
|
|
|
"preserve_match". Save just the first match. Release
|
|
|
|
|
bfd_alloc memory. Restore and finish preserved state as
|
|
|
|
|
appropriate on all function exit paths.
|
|
|
|
|
|
2019-12-30 23:25:08 +01:00
|
|
|
|
2020-01-04 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* mmo.c (mmo_mkobject): Allocate tdata with bfd_zalloc.
|
|
|
|
|
|
2020-01-01 00:58:42 +01:00
|
|
|
|
2020-01-04 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* coffgen.c (coff_real_object_p): Free malloc'd memory on target
|
|
|
|
|
match too.
|
|
|
|
|
|
2020-01-03 17:17:53 +01:00
|
|
|
|
2020-01-03 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR 25307
|
|
|
|
|
(bfd_pef_parse_function_stubs): Correct the test that ensures that
|
|
|
|
|
there is enough data remaining in the code buffer before
|
|
|
|
|
attempting to read a function stub.
|
|
|
|
|
|
2020-01-03 15:41:02 +01:00
|
|
|
|
2020-01-03 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR 25308
|
|
|
|
|
* elf-properties.c (_bfd_elf_convert_gnu_properties): Check the
|
|
|
|
|
return value from bfd_malloc.
|
|
|
|
|
* elf32-arm.c (bfd_elf32_arm_vfp11_fix_veneer_locations): Likewise.
|
|
|
|
|
(bfd_elf32_arm_stm32l4xx_fix_veneer_locations): Likewise.
|
|
|
|
|
(elf32_arm_filter_cmse_symbols): Likewise.
|
|
|
|
|
(elf32_arm_write_section): Likewise.
|
|
|
|
|
* mach-o.c (bfd_mach_o_core_fetch_environment): Likewise.
|
|
|
|
|
(bfd_mach_o_follow_dsym): Likewise.
|
|
|
|
|
* pef.c (bfd_pef_print_loader_section): Likewise.
|
|
|
|
|
(bfd_pef_scan_start_address): Likewise.
|
|
|
|
|
(bfd_pef_parse_function_stubs): Likewise.
|
|
|
|
|
(bfd_pef_parse_symbols): Likewise.
|
|
|
|
|
|
2020-01-03 12:21:00 +01:00
|
|
|
|
2020-01-03 Sergei Trofimovich <siarheit@google.com>
|
|
|
|
|
|
|
|
|
|
* elfnn-ia64.c (elfNN_ia64_merge_private_bfd_data): don't fail
|
|
|
|
|
on binary inputs ld/PR25316.
|
|
|
|
|
(is_ia64_elf): new helper to filter on ia64 objects.
|
|
|
|
|
|
2020-01-03 10:11:50 +01:00
|
|
|
|
2020-01-03 Jan Beulich <jbeulich@suse.com>
|
|
|
|
|
|
|
|
|
|
* mach-o.c (cpusubtype, bfd_mach_o_header_p): Insert underscore
|
|
|
|
|
in parameter names.
|
|
|
|
|
(bfd_mach_o_scan): Insert underscore in two variable names.
|
|
|
|
|
|
2020-01-02 15:10:40 +01:00
|
|
|
|
2020-01-02 Sergey Belyashov <sergey.belyashov@gmail.com>
|
|
|
|
|
|
|
|
|
|
* Makefile.am: Add z80-elf target support.
|
|
|
|
|
* configure.ac: Likewise.
|
|
|
|
|
* targets.c: Likewise.
|
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
* config.bfd: Add z80-elf target support and new arches: ez80 and
|
|
|
|
|
z180.
|
|
|
|
|
* elf32-z80.c: New file.
|
|
|
|
|
* archures.c: Add new z80 architectures: eZ80 and Z180.
|
|
|
|
|
* coffcode.h: Likewise.
|
|
|
|
|
* cpu-z80.c: Likewise.
|
|
|
|
|
* coff-z80.c: Add new relocations for Z80 target and local label
|
|
|
|
|
check.
|
|
|
|
|
* reloc.c: Add new relocs.
|
|
|
|
|
* bfd-in2.h: Regenerate.
|
|
|
|
|
* libbfd.h: Regenerate.
|
|
|
|
|
|
2020-01-02 15:06:01 +01:00
|
|
|
|
2020-01-02 Tamar Christina <tamar.christina@arm.com>
|
|
|
|
|
|
|
|
|
|
PR 25210
|
|
|
|
|
PR 24753
|
|
|
|
|
* elfnn-aarch64.c (_bfd_aarch64_create_stub_section): Set ELF class.
|
|
|
|
|
|
2020-01-01 09:22:19 +01:00
|
|
|
|
2020-01-01 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
Update year range in copyright notice of all files.
|
|
|
|
|
|
2020-01-01 08:37:11 +01:00
|
|
|
|
For older changes see ChangeLog-2019
|
2016-01-01 11:44:31 +01:00
|
|
|
|
|
2020-01-01 08:37:11 +01:00
|
|
|
|
Copyright (C) 2020 Free Software Foundation, Inc.
|
2016-01-01 11:44:31 +01:00
|
|
|
|
|
|
|
|
|
Copying and distribution of this file, with or without modification,
|
|
|
|
|
are permitted in any medium without royalty provided the copyright
|
|
|
|
|
notice and this notice are preserved.
|
|
|
|
|
|
|
|
|
|
Local Variables:
|
|
|
|
|
mode: change-log
|
|
|
|
|
left-margin: 8
|
|
|
|
|
fill-column: 74
|
|
|
|
|
version-control: never
|
|
|
|
|
End:
|