2016-08-26 Thomas Preud'homme <thomas.preudhomme@arm.com>
authorThomas Preud'homme <thomas.preudhomme@arm.com>
Fri, 26 Aug 2016 11:01:47 +0000 (12:01 +0100)
committerThomas Preud'homme <thomas.preudhomme@arm.com>
Fri, 26 Aug 2016 11:01:47 +0000 (12:01 +0100)
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.

bfd/ChangeLog
bfd/elf32-arm.c

index 3d4dc40..05c9b2e 100644 (file)
@@ -1,3 +1,10 @@
+2016-08-26  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-08-26  Cupertino Miranda  <cmiranda@synopsys.com>
 
        * elf32-arc.c (elf_arc_relocate_section): Changed. Set should_relocate
index a2402ba..564fcb7 100644 (file)
@@ -4244,6 +4244,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
@@ -4401,6 +4402,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;
@@ -5494,6 +5496,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;