From 0ae1246717ffbabda5d54be8def95f4424147c0f Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Wed, 12 Jan 2022 15:41:22 +1030 Subject: [PATCH] Re: Set SEC_ELF_REVERSE_COPY earlier Let's not rely on .init/.fini having relocs for the size sanity check. This is mainly to squash reports of "my fuzzed object made ld hang". --- bfd/elflink.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/bfd/elflink.c b/bfd/elflink.c index 107480286f3..4529f83dbca 100644 --- a/bfd/elflink.c +++ b/bfd/elflink.c @@ -11834,9 +11834,10 @@ elf_link_input_bfd (struct elf_final_link_info *flinfo, bfd *input_bfd) { /* Reverse-copy input section to output. */ - if (o->reloc_count != 0 - && (o->size * bed->s->int_rels_per_ext_rel - != o->reloc_count * address_size)) + if ((o->size & (address_size - 1)) != 0 + || (o->reloc_count != 0 + && (o->size * bed->s->int_rels_per_ext_rel + != o->reloc_count * address_size))) { _bfd_error_handler /* xgettext:c-format */ -- 2.30.2