[PATCH] gold: powerpc: Test whether sym is not a plugin in do_gc_mark_symbol
Nikita Ermakov
coffe92@gmail.com
Wed May 13 20:47:26 GMT 2020
sym->object() could be either a Plugin or Powerpc_relobj. There could
be a situation when Pluginobj would be proccessed in
ppc_object->get_opd_ent(dst_off) as Powerpc_relobj and it leads to the
segmentation fault.
---
gold/powerpc.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gold/powerpc.cc b/gold/powerpc.cc
index eae483212b..2010c1e3d2 100644
--- a/gold/powerpc.cc
+++ b/gold/powerpc.cc
@@ -9056,7 +9056,7 @@ Target_powerpc<size, big_endian>::do_gc_mark_symbol(
Symbol_table* symtab,
Symbol* sym) const
{
- if (size == 64)
+ if (size == 64 && sym->object()->pluginobj() == NULL)
{
Powerpc_relobj<size, big_endian>* ppc_object
= static_cast<Powerpc_relobj<size, big_endian>*>(sym->object());
--
2.26.0
More information about the Binutils
mailing list