[prev in list] [next in list] [prev in thread] [next in thread] 

List:       binutils
Subject:    Re: PR28420, ecoff fuzzing failures
From:       Alan Modra via Binutils <binutils () sourceware ! org>
Date:       2021-10-31 2:35:25
Message-ID: YX3+HVhYSLljyniW () squeak ! grove ! modra ! org
[Download RAW message or body]

sym_ptr_ptr NULL results in segfaults.

	PR 28420
	* ecoff.c (ecoff_slurp_reloc_table): Don't leave sym_ptr_ptr NULL.

diff --git a/bfd/ecoff.c b/bfd/ecoff.c
index 7539fadbeca..c660af13265 100644
--- a/bfd/ecoff.c
+++ b/bfd/ecoff.c
@@ -1606,7 +1606,7 @@ ecoff_slurp_reloc_table (bfd *abfd,
       (*backend->swap_reloc_in) (abfd,
 				 external_relocs + i * external_reloc_size,
 				 &intern);
-      rptr->sym_ptr_ptr = NULL;
+      rptr->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr;
       rptr->addend = 0;
 
       if (intern.r_extern)
@@ -1617,9 +1617,6 @@ ecoff_slurp_reloc_table (bfd *abfd,
 		  < (ecoff_data (abfd)->debug_info.symbolic_header.iextMax)))
 	    rptr->sym_ptr_ptr = symbols + intern.r_symndx;
 	}
-      else if (intern.r_symndx == RELOC_SECTION_NONE
-	       || intern.r_symndx == RELOC_SECTION_ABS)
-	rptr->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr;
       else
 	{
 	  const char *sec_name;

-- 
Alan Modra
Australia Development Lab, IBM
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic