PR25900, RISC-V: null pointer dereference

PR 25900
	* elfnn-riscv.c (_bfd_riscv_relax_section): Check root.type before
	accessing root.u.def of symbols.  Also check root.u.def.section
	is non-NULL.  Reverse tests so as to make the logic positive.
This commit is contained in:
Alan Modra 2020-05-01 15:32:00 +09:30
parent 6083233224
commit a2714d6cca
2 changed files with 13 additions and 5 deletions

View File

@ -1,3 +1,10 @@
2020-05-01 Alan Modra <amodra@gmail.com>
PR 25900
* elfnn-riscv.c (_bfd_riscv_relax_section): Check root.type before
accessing root.u.def of symbols. Also check root.u.def.section
is non-NULL. Reverse tests so as to make the logic positive.
2020-05-01 Alan Modra <amodra@gmail.com>
PR 25882

View File

@ -4161,15 +4161,16 @@ _bfd_riscv_relax_section (bfd *abfd, asection *sec,
symval = 0;
sym_sec = bfd_und_section_ptr;
}
else if (h->root.u.def.section->output_section == NULL
|| (h->root.type != bfd_link_hash_defined
&& h->root.type != bfd_link_hash_defweak))
continue;
else
else if ((h->root.type == bfd_link_hash_defined
|| h->root.type == bfd_link_hash_defweak)
&& h->root.u.def.section != NULL
&& h->root.u.def.section->output_section != NULL)
{
symval = h->root.u.def.value;
sym_sec = h->root.u.def.section;
}
else
continue;
if (h->type != STT_FUNC)
reserve_size =