From 75e100a30d5dfdd3ac2b0391c17173645fc77633 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Wed, 12 Aug 2020 20:18:43 +0930 Subject: PR26348, Malloc error in write_zeros This adds a few more sanity checks on ELF objects, and a BFD flag to disable objcopy and strip when fuzzed input files belong in the "too hard" basket. bfd/ PR 26348 * bfd.c (struct bfd): Add read_only. * elfcode.h (elf_swap_shdr_in): Test both sh_offset and sh_size. Set read_only on warning. (elf_object_p): Sanity check program header alignment. Set read_only on warning. * bfd-in2.h: Regenerate. binutils/ PR 26348 * objcopy.c (copy_object): Report file name with endian error. Error and return on abfd->read_only. --- binutils/ChangeLog | 6 ++++++ binutils/objcopy.c | 10 +++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) (limited to 'binutils') diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 5037d91..0006ad1 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,9 @@ +2020-08-13 Alan Modra + + PR 26348 + * objcopy.c (copy_object): Report file name with endian error. + Error and return on abfd->read_only. + 2020-08-12 Tom Tromey * dwarf-mode.el (Version): Now 1.6. diff --git a/binutils/objcopy.c b/binutils/objcopy.c index 3866c7f..c5af179 100644 --- a/binutils/objcopy.c +++ b/binutils/objcopy.c @@ -2604,7 +2604,15 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch) { /* PR 17636: Call non-fatal so that we return to our parent who may need to tidy temporary files. */ - non_fatal (_("Unable to change endianness of input file(s)")); + non_fatal (_("unable to change endianness of '%s'"), + bfd_get_archive_filename (ibfd)); + return FALSE; + } + + if (ibfd->read_only) + { + non_fatal (_("unable to modify '%s' due to errors"), + bfd_get_archive_filename (ibfd)); return FALSE; } -- cgit v1.1