summaryrefslogtreecommitdiff
path: root/bfd/vms-alpha.c
diff options
context:
space:
mode:
authorTristan Gingold <gingold@adacore.com>2011-06-24 15:22:36 +0000
committerTristan Gingold <gingold@adacore.com>2011-06-24 15:22:36 +0000
commit4091037612ef40af2cb1f348cbcacfe627f0ca0f (patch)
treef9fb0e106eccabdb7ee3a621b8540fd9b4b14fd2 /bfd/vms-alpha.c
parent899569fe4a5e83578eebfe7c22bbbf78b3d95de0 (diff)
downloadbinutils-redhat-4091037612ef40af2cb1f348cbcacfe627f0ca0f.tar.gz
2011-06-24 Tristan Gingold <gingold@adacore.com>
* vms-alpha.c (alpha_vms_slurp_relocs): Add a guard for relocs in the absolute section.
Diffstat (limited to 'bfd/vms-alpha.c')
-rw-r--r--bfd/vms-alpha.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/bfd/vms-alpha.c b/bfd/vms-alpha.c
index 92bf444f23..255a100027 100644
--- a/bfd/vms-alpha.c
+++ b/bfd/vms-alpha.c
@@ -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;