aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Preud'homme <thomas.preudhomme@arm.com>2016-03-29 20:39:15 +0100
committerThomas Preud'homme <thomas.preudhomme@arm.com>2016-03-29 20:39:15 +0100
commitde92984250bc45388b819b9879a857029c8847e6 (patch)
treedd5aede253d16ad922c60ad3ab516b7f8a2eafc0
parentc16628bd6c9170e0cebdbef6fcf1e808901429fa (diff)
Assert we don't access htab->stub_group out of rangeusers/ARM/embedded-binutils-2_26-branch-2016q1
2016-03-29 Thomas Preud'homme <thomas.preudhomme@arm.com> bfd/ * elf32-arm.c (elf32_arm_get_stub_entry): Assert that we don't access passed the end of htab->stub_group array. (elf32_arm_create_or_find_stub_sec): Likewise. (elf32_arm_create_stub): Likewise.
-rw-r--r--bfd/ChangeLog.arm7
-rw-r--r--bfd/elf32-arm.c3
2 files changed, 10 insertions, 0 deletions
diff --git a/bfd/ChangeLog.arm b/bfd/ChangeLog.arm
index 65e8b446195..5c7a08844de 100644
--- a/bfd/ChangeLog.arm
+++ b/bfd/ChangeLog.arm
@@ -1,5 +1,12 @@
2016-03-29 Thomas Preud'homme <thomas.preudhomme@arm.com>
+ * elf32-arm.c (elf32_arm_get_stub_entry): Assert that we don't access
+ passed the end of htab->stub_group array.
+ (elf32_arm_create_or_find_stub_sec): Likewise.
+ (elf32_arm_create_stub): Likewise.
+
+2016-03-29 Thomas Preud'homme <thomas.preudhomme@arm.com>
+
* bfd-in.h (bfd_elf32_arm_set_target_relocs): Add a new parameter for
the input import library bfd.
* bfd-in2.h: Regenerate.
diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c
index 1bbcef0f1bc..65570904824 100644
--- a/bfd/elf32-arm.c
+++ b/bfd/elf32-arm.c
@@ -4076,6 +4076,7 @@ elf32_arm_get_stub_entry (const asection *input_section,
Stub names need to include a section id, as there may well be
more than one stub used to reach say, printf, and we need to
distinguish between them. */
+ BFD_ASSERT (input_section->id <= htab->top_id);
id_sec = htab->stub_group[input_section->id].link_sec;
if (h != NULL && h->stub_cache != NULL
@@ -4233,6 +4234,7 @@ elf32_arm_create_or_find_stub_sec (asection **link_sec_p, asection *section,
}
else
{
+ BFD_ASSERT (section->id <= htab->top_id);
link_sec = htab->stub_group[section->id].link_sec;
BFD_ASSERT (link_sec != NULL);
stub_sec_p = &htab->stub_group[section->id].stub_sec;
@@ -5342,6 +5344,7 @@ elf32_arm_create_stub (struct elf32_arm_link_hash_table *htab,
{
BFD_ASSERT (irela);
BFD_ASSERT (section);
+ BFD_ASSERT (section->id <= htab->top_id);
/* Support for grouping stub sections. */
id_sec = htab->stub_group[section->id].link_sec;