PR28420, ecoff fuzzing failures
Alan Modra
amodra@gmail.com
Sun Oct 31 02:23:25 GMT 2021
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
More information about the Binutils
mailing list