PR25191, internal error in _bfd_elf_set_section_contents
authorAlan Modra <amodra@gmail.com>
Tue, 19 Nov 2019 04:23:44 +0000 (14:53 +1030)
committerAlan Modra <amodra@gmail.com>
Tue, 19 Nov 2019 05:01:48 +0000 (15:31 +1030)
commitdd68a12bc4b19c50c31fe357335bb8ee9a3322fc
treecb7ca99d9ebd27d86aa0fd0ac26eb022522da14b
parentf14080d440fab16dcb498c1a46864a5a1be37aaa
PR25191, internal error in _bfd_elf_set_section_contents

This PR copies a fuzzed PE input file to ELF output, in the process
confusing the ELF backend by copying COFF-only section flags to the
output.  SEC_COFF_SHARED has the same value as SEC_ELF_COMPRESS.  One
approach to fixing this problem is of course not to reuse flag bits,
but we've run out.  So this patch only copies section flags that are
in the bfd_applicable_section_flags set when changing the flavour of
the output file.

PR 25191
* objcopy.c (is_nondebug_keep_contents_section): Use bfd_get_flavour.
(copy_object): Likewise.
(setup_section): Likewise.  If flavour of input and output files
differ, restrict section flags to the intersection of input and
output bfd_applicable_section_flags.
binutils/ChangeLog
binutils/objcopy.c