+2018-10-16 Alan Modra <amodra@gmail.com>
+
+ * peXXigen.c (_bfd_XX_bfd_copy_private_bfd_data_common): Simplify
+ PE_DEBUG_DATA size checks.
+
2018-10-16 Alan Modra <amodra@gmail.com>
PR 23781
(struct external_IMAGE_DEBUG_DIRECTORY *)(data + (addr - section->vma));
/* PR 17512: file: 0f15796a. */
- if (ope->pe_opthdr.DataDirectory[PE_DEBUG_DATA].Size + (addr - section->vma)
- > bfd_get_section_size (section))
+ if ((unsigned long) ope->pe_opthdr.DataDirectory[PE_DEBUG_DATA].Size
+ > section->size - (addr - section->vma))
{
/* xgettext:c-format */
_bfd_error_handler
free (data);
return FALSE;
}
- /* PR 23110. */
- else if (ope->pe_opthdr.DataDirectory[PE_DEBUG_DATA].Size < 0)
- {
- /* xgettext:c-format */
- _bfd_error_handler
- (_("%pB: Data Directory size (%#lx) is negative"),
- obfd, ope->pe_opthdr.DataDirectory[PE_DEBUG_DATA].Size);
- free (data);
- return FALSE;
- }
for (i = 0; i < ope->pe_opthdr.DataDirectory[PE_DEBUG_DATA].Size
/ sizeof (struct external_IMAGE_DEBUG_DIRECTORY); i++)