From fa19218f8b4ec6bc2d7da6b20dce5f2cd22072bd Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Wed, 4 Jan 2023 23:00:12 +1030 Subject: objcopy fuzzed pe out of memory This occurs when attempting to read back a section from the output file in _bfd_XX_bfd_copy_private_bfd_data_common. The copy of the section failed size sanity checking, thus it won't be written. * objcopy.c (copy_object): Return false if copy_section or copy_relocations_in_section fails. --- binutils/objcopy.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'binutils/objcopy.c') diff --git a/binutils/objcopy.c b/binutils/objcopy.c index 4d88890..80a5d52 100644 --- a/binutils/objcopy.c +++ b/binutils/objcopy.c @@ -3328,9 +3328,13 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch) /* This has to happen before section positions are set. */ bfd_map_over_sections (ibfd, copy_relocations_in_section, obfd); + if (status != 0) + return false; /* This has to happen after the symbol table has been set. */ bfd_map_over_sections (ibfd, copy_section, obfd); + if (status != 0) + return false; if (add_sections != NULL) { -- cgit v1.1