From b613960add9c5795487fac9952fe4a999e3c7d72 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 17 Jun 2003 09:57:18 +0000 Subject: [PATCH] (elf_gc_record_vtentry): Allocate an extra element in the vtable_entries_used array to allow for the accessing the largest element. --- bfd/ChangeLog | 6 ++++++ bfd/elflink.h | 7 ++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 23350fd8d09..c6b6b1ee841 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2003-06-17 Nick Clifton + + * elflink.h (elf_gc_record_vtentry): Allocate an extra element + in the vtable_entries_used array to allow for the accessing + the largest element. + 2003-06-17 Alan Modra * elf64-ppc.c (struct ppc_link_hash_table): Remove top_index. Modify diff --git a/bfd/elflink.h b/bfd/elflink.h index 8acb7a93632..b960c73f9cb 100644 --- a/bfd/elflink.h +++ b/bfd/elflink.h @@ -6283,7 +6283,7 @@ elf_gc_record_vtentry (abfd, sec, h, addend) struct elf_backend_data *bed = get_elf_backend_data (abfd); unsigned int log_file_align = bed->s->log_file_align; - if (addend >= h->vtable_entries_size) + if (addend > h->vtable_entries_size) { size_t size, bytes; bfd_boolean *ptr = h->vtable_entries_used; @@ -6304,8 +6304,9 @@ elf_gc_record_vtentry (abfd, sec, h, addend) } /* Allocate one extra entry for use as a "done" flag for the - consolidation pass. */ - bytes = ((size >> log_file_align) + 1) * sizeof (bfd_boolean); + consolidation pass and another extra entry because we are + going to write up to and including 'size' entries. */ + bytes = ((size >> log_file_align) + 2) * sizeof (bfd_boolean); if (ptr) { -- 2.30.2