Fixes a bug introduced by the new ranges checks on COFF symbol tables.
authorNick Clifton <nickc@redhat.com>
Tue, 24 Mar 2015 17:20:00 +0000 (17:20 +0000)
committerNick Clifton <nickc@redhat.com>
Tue, 24 Mar 2015 17:20:00 +0000 (17:20 +0000)
PR binutils/17512
* coffgen.c (coff_get_normalized_symtab): Fix test for out of
range auxillary sections.

bfd/ChangeLog
bfd/coffgen.c

index aad0763..73c155c 100644 (file)
@@ -1,3 +1,9 @@
+2015-03-24  Nick Clifton  <nickc@redhat.com>
+
+       PR binutils/17512
+       * coffgen.c (coff_get_normalized_symtab): Fix test for out of
+       range auxillary sections.
+
 2015-03-24  Marcus Shawcroft  <marcus.shawcroft@arm.com>
 
        * elfnn-aarch64.c (_bfd_aarch64_create_or_find_stub_sec): Factor
index b1ab56e..2cd7b09 100644 (file)
@@ -1808,7 +1808,7 @@ coff_get_normalized_symtab (bfd *abfd)
       if (symbol_ptr->u.syment.n_sclass == C_FILE
          && symbol_ptr->u.syment.n_numaux > 0
          && raw_src + symesz + symbol_ptr->u.syment.n_numaux
-         * sizeof (union internal_auxent) >= raw_end)
+         * symesz > raw_end)
        {
          bfd_release (abfd, internal);
          return NULL;
@@ -1827,7 +1827,6 @@ coff_get_normalized_symtab (bfd *abfd)
            }
 
          raw_src += symesz;
-
          bfd_coff_swap_aux_in (abfd, (void *) raw_src,
                                symbol_ptr->u.syment.n_type,
                                symbol_ptr->u.syment.n_sclass,