forked from Imagelibrary/binutils-gdb
objcopy: check input flavor before setting PE/COFF section alignment
coff_section_data() and elf_section_data() use the same underlying field. The pointer being non-NULL therefore isn't sufficient to know that pei_section_data() can validly be used on the incoming object. Apparently in 64-bit-host builds the resulting memory corruption is benign, whereas in 32-bit-host builds a segmentation fault occurs upon de-referencing pei_section_data()'s return value.
This commit is contained in:
@@ -4317,6 +4317,7 @@ setup_section (bfd *ibfd, sec_ptr isection, void *obfdarg)
|
||||
if (p != NULL)
|
||||
alignment = p->alignment;
|
||||
else if (pe_section_alignment != (bfd_vma) -1
|
||||
&& bfd_get_flavour (ibfd) == bfd_target_coff_flavour
|
||||
&& bfd_get_flavour (obfd) == bfd_target_coff_flavour)
|
||||
{
|
||||
alignment = power_of_two (pe_section_alignment);
|
||||
|
||||
Reference in New Issue
Block a user