[binutils-gdb] PR26482, ASAN: _bfd_xcoff_sizeof_headers coff-rs6000.c:2585

Alan Modra amodra@sourceware.org
Tue Aug 25 13:38:31 GMT 2020


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

commit a93ba4c0cf1d6ffa46b493643460730265455e4c
Author: Alan Modra <amodra@gmail.com>
Date:   Tue Aug 25 16:15:27 2020 +0930

    PR26482, ASAN: _bfd_xcoff_sizeof_headers coff-rs6000.c:2585
    
            PR 26482
            * coff-rs6000.c (_bfd_xcoff_sizeof_headers): Ignore sections that
            won't be output.

Diff:
---
 bfd/ChangeLog     |  6 ++++++
 bfd/coff-rs6000.c | 12 +++++++-----
 2 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 7cf99f68f37..c3342ca0966 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+2020-08-25  Alan Modra  <amodra@gmail.com>
+
+	PR 26482
+	* coff-rs6000.c (_bfd_xcoff_sizeof_headers): Ignore sections that
+	won't be output.
+
 2020-08-25  Alan Modra  <amodra@gmail.com>
 
 	PR 26463
diff --git a/bfd/coff-rs6000.c b/bfd/coff-rs6000.c
index 00c9d7c7f4b..48c583bfd02 100644
--- a/bfd/coff-rs6000.c
+++ b/bfd/coff-rs6000.c
@@ -2580,11 +2580,13 @@ _bfd_xcoff_sizeof_headers (bfd *abfd,
       /* Sum.  */
       for (sub = info->input_bfds; sub != NULL; sub = sub->link.next)
 	for (s = sub->sections; s != NULL; s = s->next)
-	  {
-	    struct nbr_reloc_lineno *e = &n_rl[s->output_section->index];
-	    e->reloc_count += s->reloc_count;
-	    e->lineno_count += s->lineno_count;
-	  }
+	  if (s->output_section->owner == abfd
+	      && !bfd_section_removed_from_list (abfd, s->output_section))
+	    {
+	      struct nbr_reloc_lineno *e = &n_rl[s->output_section->index];
+	      e->reloc_count += s->reloc_count;
+	      e->lineno_count += s->lineno_count;
+	    }
 
       /* Add the size of a section for each section with an overflow.  */
       for (s = abfd->sections; s != NULL; s = s->next)


More information about the Binutils-cvs mailing list