2011-06-24 Tristan Gingold <gingold@adacore.com>
authorTristan Gingold <gingold@adacore.com>
Fri, 24 Jun 2011 15:22:40 +0000 (15:22 +0000)
committerTristan Gingold <gingold@adacore.com>
Fri, 24 Jun 2011 15:22:40 +0000 (15:22 +0000)
* vms-alpha.c (alpha_vms_slurp_relocs): Add a guard for relocs in the
absolute section.

bfd/ChangeLog
bfd/vms-alpha.c

index 066713de9163fcf58c131b713e92d4148d9fb77d..96297a3dda636ef673b20d44fb909c0b57b76a6a 100644 (file)
@@ -1,3 +1,8 @@
+2011-06-24  Tristan Gingold  <gingold@adacore.com>
+
+       * vms-alpha.c (alpha_vms_slurp_relocs): Add a guard for relocs in the
+       absolute section.
+
 2011-06-24  Alan Modra  <amodra@gmail.com>
 
        PR ld/12921
index 92bf444f231fedc8cf6e3d0c533a5eaf13acd1e4..255a100027da8ec7c27a920d6b47e1280d27b5c5 100644 (file)
@@ -5106,7 +5106,14 @@ alpha_vms_slurp_relocs (bfd *abfd)
                 (*_bfd_error_handler) (_("Invalid section index in ETIR"));
                 return FALSE;
               }
+
             sec = PRIV (sections)[cur_psect];
+            if (sec == bfd_abs_section_ptr)
+              {
+                (*_bfd_error_handler) (_("Relocation for non-REL psect"));
+                return FALSE;
+              }
+
             vms_sec = vms_section_data (sec);
 
             /* Allocate a reloc entry.  */
@@ -5117,7 +5124,7 @@ alpha_vms_slurp_relocs (bfd *abfd)
                     vms_sec->reloc_max = 64;
                     sec->relocation = bfd_zmalloc
                       (vms_sec->reloc_max * sizeof (arelent));
-                }
+                  }
                 else
                   {
                     vms_sec->reloc_max *= 2;