diff options
author | Nick Clifton <nickc@redhat.com> | 2003-06-17 09:57:18 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2003-06-17 09:57:18 +0000 |
commit | b613960add9c5795487fac9952fe4a999e3c7d72 (patch) | |
tree | d66e01c08aad810465062e268ac52af2107d9309 /bfd/elflink.h | |
parent | 3d6f9012bb716b467d0e67172c2658c02c1ad9fd (diff) | |
download | gdb-b613960add9c5795487fac9952fe4a999e3c7d72.zip gdb-b613960add9c5795487fac9952fe4a999e3c7d72.tar.gz gdb-b613960add9c5795487fac9952fe4a999e3c7d72.tar.bz2 |
(elf_gc_record_vtentry): Allocate an extra element in the vtable_entries_used
array to allow for the accessing the largest element.
Diffstat (limited to 'bfd/elflink.h')
-rw-r--r-- | bfd/elflink.h | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/bfd/elflink.h b/bfd/elflink.h index 8acb7a9..b960c73 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) { |