diff options
author | Alan Modra <amodra@gmail.com> | 2002-03-27 00:16:54 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2002-03-27 00:16:54 +0000 |
commit | b99d18333dd47aa5750a26999e683480f16fb1d4 (patch) | |
tree | 46790f34e0c420d5e49b87dd69ce6aa5dbcc65e4 /bfd/elf.c | |
parent | cfed07154c9448b8dd40c8994fc2a03a3f7df090 (diff) | |
download | gdb-b99d18333dd47aa5750a26999e683480f16fb1d4.zip gdb-b99d18333dd47aa5750a26999e683480f16fb1d4.tar.gz gdb-b99d18333dd47aa5750a26999e683480f16fb1d4.tar.bz2 |
* elf.c (_bfd_elf_get_symtab_upper_bound): Leave space for
terminating NULL if empty symbol table.
(_bfd_elf_get_dynamic_symtab_upper_bound): Likewise.
Diffstat (limited to 'bfd/elf.c')
-rw-r--r-- | bfd/elf.c | 8 |
1 files changed, 6 insertions, 2 deletions
@@ -5113,7 +5113,9 @@ _bfd_elf_get_symtab_upper_bound (abfd) Elf_Internal_Shdr *hdr = &elf_tdata (abfd)->symtab_hdr; symcount = hdr->sh_size / get_elf_backend_data (abfd)->s->sizeof_sym; - symtab_size = (symcount - 1 + 1) * (sizeof (asymbol *)); + symtab_size = (symcount + 1) * (sizeof (asymbol *)); + if (symcount > 0) + symtab_size -= sizeof (asymbol *); return symtab_size; } @@ -5133,7 +5135,9 @@ _bfd_elf_get_dynamic_symtab_upper_bound (abfd) } symcount = hdr->sh_size / get_elf_backend_data (abfd)->s->sizeof_sym; - symtab_size = (symcount - 1 + 1) * (sizeof (asymbol *)); + symtab_size = (symcount + 1) * (sizeof (asymbol *)); + if (symcount > 0) + symtab_size -= sizeof (asymbol *); return symtab_size; } |