From 20dbb49d3cd4e937732167e8ea281ad938513547 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Mon, 18 Apr 2005 03:12:51 +0000 Subject: 2005-04-17 H.J. Lu PR 855 * elf.c (setup_group): Properly handle zero group count. --- bfd/ChangeLog | 5 +++++ bfd/elf.c | 14 +++++++++----- 2 files changed, 14 insertions(+), 5 deletions(-) (limited to 'bfd') diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 155d34f..a44e8f2 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2005-04-17 H.J. Lu + + PR 855 + * elf.c (setup_group): Properly handle zero group count. + 2005-04-17 Mark Kettenis * som.c (hppa_som_reloc, som_mkobject, som_is_space) diff --git a/bfd/elf.c b/bfd/elf.c index 4c10096..5f68112 100644 --- a/bfd/elf.c +++ b/bfd/elf.c @@ -481,14 +481,18 @@ setup_group (bfd *abfd, Elf_Internal_Shdr *hdr, asection *newsect) } if (num_group == 0) - num_group = (unsigned) -1; - elf_tdata (abfd)->num_group = num_group; - - if (num_group > 0) + { + num_group = (unsigned) -1; + elf_tdata (abfd)->num_group = num_group; + } + else { /* We keep a list of elf section headers for group sections, so we can find them quickly. */ - bfd_size_type amt = num_group * sizeof (Elf_Internal_Shdr *); + bfd_size_type amt; + + elf_tdata (abfd)->num_group = num_group; + amt = num_group * sizeof (Elf_Internal_Shdr *); elf_tdata (abfd)->group_sect_ptr = bfd_alloc (abfd, amt); if (elf_tdata (abfd)->group_sect_ptr == NULL) return FALSE; -- cgit v1.1