diff options
author | Nick Clifton <nickc@redhat.com> | 2015-02-26 21:32:04 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2015-02-26 21:32:04 +0000 |
commit | c86934ceee0971a04bbfc145c7b9a53357c25c91 (patch) | |
tree | 3507e8637f28e853d3f611db5a83fd03c9f33866 /bfd/coffcode.h | |
parent | 9beb7c4e1d403e1374096df3a16607132a8cfe84 (diff) | |
download | gdb-c86934ceee0971a04bbfc145c7b9a53357c25c91.zip gdb-c86934ceee0971a04bbfc145c7b9a53357c25c91.tar.gz gdb-c86934ceee0971a04bbfc145c7b9a53357c25c91.tar.bz2 |
Fixes illegal memory access errors and arithmetic overflows when running strip on fuzzed binaries.
PR binutils/17512
* coffcode.h (coff_compute_section_file_positions): Report
negative page sizes.
* elf.c (elf_fake_sections): Handle excessive alignmment powers.
(assign_file_positions_for_non_load_sections): Replace assertion
with an error message.
(rewrite_elf_program_header): Handle excessive segment
alignments.
* mach-o.c (bfd_mach_o_read_section_32): Likewise.
(bfd_mach_o_read_section_64): Likewise.
* peXXigen.c (_bfd_XX_bfd_copy_private_bfd_data_common): Use %B to
print a bfd name, not %A.
Diffstat (limited to 'bfd/coffcode.h')
-rw-r--r-- | bfd/coffcode.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/bfd/coffcode.h b/bfd/coffcode.h index 0ac4ce0..8576c0a 100644 --- a/bfd/coffcode.h +++ b/bfd/coffcode.h @@ -3170,6 +3170,15 @@ coff_compute_section_file_positions (bfd * abfd) This repairs 'ld -r' for arm-wince-pe target. */ if (page_size == 0) page_size = 1; + + /* PR 17512: file: 0ac816d3. */ + if (page_size < 0) + { + bfd_set_error (bfd_error_file_too_big); + (*_bfd_error_handler) + (_("%B: page size is too large (0x%x)"), abfd, page_size); + return FALSE; + } } else page_size = PE_DEF_FILE_ALIGNMENT; |