2005-04-17 H.J. Lu <hongjiu.lu@intel.com>
authorH.J. Lu <hjl.tools@gmail.com>
Mon, 18 Apr 2005 03:12:51 +0000 (03:12 +0000)
committerH.J. Lu <hjl.tools@gmail.com>
Mon, 18 Apr 2005 03:12:51 +0000 (03:12 +0000)
PR 855
* elf.c (setup_group): Properly handle zero group count.

bfd/ChangeLog
bfd/elf.c

index 155d34f..a44e8f2 100644 (file)
@@ -1,3 +1,8 @@
+2005-04-17  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR 855
+       * elf.c (setup_group): Properly handle zero group count.
+
 2005-04-17  Mark Kettenis  <kettenis@gnu.org>
 
        * som.c (hppa_som_reloc, som_mkobject, som_is_space)
index 4c10096..5f68112 100644 (file)
--- 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;