aboutsummaryrefslogtreecommitdiff
path: root/bfd/coff-alpha.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2021-02-15 12:00:48 +1030
committerAlan Modra <amodra@gmail.com>2021-02-15 13:34:08 +1030
commit8b78cbec3191c7f153d116fb2184ea6400b3a7b1 (patch)
tree54c46bc11c9c1d4581d3795368385efb491ae5f3 /bfd/coff-alpha.c
parenta5e6af6d17a38d08bc0cac6c1a79f46721a44972 (diff)
downloadgdb-8b78cbec3191c7f153d116fb2184ea6400b3a7b1.zip
gdb-8b78cbec3191c7f153d116fb2184ea6400b3a7b1.tar.gz
gdb-8b78cbec3191c7f153d116fb2184ea6400b3a7b1.tar.bz2
alpha_ecoff_get_relocated_section_contents
Use bfd_get_full_section_contents and tidy the start of this function to match current generic get_relocated_section_contents. * coff-alpha.c (alpha_ecoff_get_relocated_section_contents): Use bfd_get_full_section_contents.
Diffstat (limited to 'bfd/coff-alpha.c')
-rw-r--r--bfd/coff-alpha.c26
1 files changed, 16 insertions, 10 deletions
diff --git a/bfd/coff-alpha.c b/bfd/coff-alpha.c
index db26587..8031ab9 100644
--- a/bfd/coff-alpha.c
+++ b/bfd/coff-alpha.c
@@ -732,25 +732,31 @@ alpha_ecoff_get_relocated_section_contents (bfd *abfd,
{
bfd *input_bfd = link_order->u.indirect.section->owner;
asection *input_section = link_order->u.indirect.section;
- long reloc_size = bfd_get_reloc_upper_bound (input_bfd, input_section);
- arelent **reloc_vector = NULL;
+ long reloc_size;
+ arelent **reloc_vector;
long reloc_count;
bfd *output_bfd = relocatable ? abfd : (bfd *) NULL;
bfd_vma gp;
- bfd_size_type sz;
bfd_boolean gp_undefined;
bfd_vma stack[RELOC_STACKSIZE];
int tos = 0;
+ reloc_size = bfd_get_reloc_upper_bound (input_bfd, input_section);
if (reloc_size < 0)
- goto error_return;
- reloc_vector = (arelent **) bfd_malloc ((bfd_size_type) reloc_size);
- if (reloc_vector == NULL && reloc_size != 0)
- goto error_return;
+ return NULL;
- sz = input_section->rawsize ? input_section->rawsize : input_section->size;
- if (! bfd_get_section_contents (input_bfd, input_section, data, 0, sz))
- goto error_return;
+ if (!bfd_get_full_section_contents (input_bfd, input_section, &data))
+ return NULL;
+
+ if (data == NULL)
+ return NULL;
+
+ if (reloc_size == 0)
+ return data;
+
+ reloc_vector = (arelent **) bfd_malloc (reloc_size);
+ if (reloc_vector == NULL)
+ return NULL;
reloc_count = bfd_canonicalize_reloc (input_bfd, input_section,
reloc_vector, symbols);