[PATCH] elf: Verify section size for mixed ordered/unordered inputs
H.J. Lu
hjl.tools@gmail.com
Fri Jan 8 14:20:44 GMT 2021
When fixing up SHF_LINK_ORDER, issue a fatal error if the output section
size is increased. Otherwise, bfd_set_section_contents will fail later
when attempting to write contents past the end of the output section.
PR ld/26256
* elflink.c (elf_fixup_link_order): Verify that fixing up
SHF_LINK_ORDER doesn't increase the output section size.
---
bfd/elflink.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/bfd/elflink.c b/bfd/elflink.c
index a7c952b6fc1..acc959d526a 100644
--- a/bfd/elflink.c
+++ b/bfd/elflink.c
@@ -12039,6 +12039,14 @@ elf_fixup_link_order (struct bfd_link_info *info, bfd *abfd, asection *o)
offset = sections[n]->offset + sections[n]->size;
free (sections);
+
+ /* Verify that fixing up SHF_LINK_ORDER doesn't increase the section
+ size. */
+ if (offset > o->size)
+ info->callbacks->einfo
+ (_("%F%P: %pA has ordered sections with incompatible alignments\n"),
+ o);
+
return TRUE;
}
--
2.29.2
More information about the Binutils
mailing list