[binutils-gdb] Fixes a bug introduced by the new ranges checks on COFF symbol tables.

Nick Clifton nickc@sourceware.org
Tue Mar 24 17:20:00 GMT 2015


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=fc42baf3cdc41bc8cf12e35ae78e4529c1470118

commit fc42baf3cdc41bc8cf12e35ae78e4529c1470118
Author: Nick Clifton <nickc@redhat.com>
Date:   Tue Mar 24 17:20:00 2015 +0000

    Fixes a bug introduced by the new ranges checks on COFF symbol tables.
    
    	PR binutils/17512
    	* coffgen.c (coff_get_normalized_symtab): Fix test for out of
    	range auxillary sections.

Diff:
---
 bfd/ChangeLog | 6 ++++++
 bfd/coffgen.c | 3 +--
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index aad0763..73c155c 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -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
diff --git a/bfd/coffgen.c b/bfd/coffgen.c
index b1ab56e..2cd7b09 100644
--- a/bfd/coffgen.c
+++ b/bfd/coffgen.c
@@ -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,



More information about the Binutils-cvs mailing list