Commit fc304b88 authored by Alan Modra's avatar Alan Modra
Browse files

PR27719, lang_mark_undefineds trashes memory

It's not enough to test that the output is ELF before casting
bfd_link_hash_entry to elf_link_hash_entry.  Some ELF targets (d30v,
dlx, pj, s12z, xgate) use the generic linker support in bfd/linker.c
and thus their symbols are of type generic_link_hash_entry.

Not all of the places this patch touches can result in wrong accesses,
but I thought it worth ensuring that all occurrences of
elf_link_hash_entry in ld/ were obviously correct.

	PR 27719
	* ldlang.c (lang_mark_undefineds, undef_start_stop): Test that
	the symbol hash table is the correct type before accessing
	elf_link_hash_entry symbols.
	* plugin.c (is_visible_from_outside): Likewise.
	* emultempl/armelf.em (ld${EMULATION_NAME}_finish): Likewise.
	* emultempl/solaris2.em (elf_solaris2_before_allocation): Likewise.
parent e601909a
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment