diff options
author | Nick Clifton <nickc@redhat.com> | 2020-09-03 16:11:43 +0100 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2020-09-03 16:11:43 +0100 |
commit | ac267c754cecd2bbbfc71feb9ca8ec84f6754cb4 (patch) | |
tree | e09d57f12fb5d33ec9d950b66e954d8e0102bef3 /bfd | |
parent | 8f5c6526ebbd8b5749dd2f348796b53f3e2b25ee (diff) | |
download | binutils-ac267c754cecd2bbbfc71feb9ca8ec84f6754cb4.zip binutils-ac267c754cecd2bbbfc71feb9ca8ec84f6754cb4.tar.gz binutils-ac267c754cecd2bbbfc71feb9ca8ec84f6754cb4.tar.bz2 |
Fix a division by zero error when processing secondary relocs in a fuzzed input file.
PR 26521
* elf.c (_bfd_elf_write_secondary_reloc_section): Check for
secondary reloc sections with a zero sh_entsize field.
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/ChangeLog | 6 | ||||
-rw-r--r-- | bfd/elf.c | 11 |
2 files changed, 17 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 2dc5b54..1b58f95 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2020-09-03 Nick Clifton <nickc@redhat.com> + + PR 26521 + * elf.c (_bfd_elf_write_secondary_reloc_section): Check for + secondary reloc sections with a zero sh_entsize field. + 2020-09-03 Nelson Chu <nelson.chu@sifive.com> * elfnn-riscv.c (riscv_i_or_e_p): Minor cleanup for warnings/errors. @@ -12847,6 +12847,17 @@ _bfd_elf_write_secondary_reloc_section (bfd *abfd, asection *sec) continue; } + if (hdr->sh_entsize == 0) + { + _bfd_error_handler + /* xgettext:c-format */ + (_("%pB(%pA): error: secondary reloc section has zero sized entries"), + abfd, relsec); + bfd_set_error (bfd_error_bad_value); + result = FALSE; + continue; + } + reloc_count = hdr->sh_size / hdr->sh_entsize; if (reloc_count <= 0) { |