PR24857, ld: error adding symbols: bad value
authorAlan Modra <amodra@gmail.com>
Sun, 28 Jul 2019 05:26:37 +0000 (14:56 +0930)
committerAlan Modra <amodra@gmail.com>
Sun, 28 Jul 2019 09:41:48 +0000 (19:11 +0930)
commit4538d1c7c46e67b472d8d5ebf163f3dfd9c67714
tree04c8431d48f64a6e83c2487f86ab041df957a631
parent52b75bf1dc759e8d9eda9a71caa52e458e57e4ff
PR24857, ld: error adding symbols: bad value

This fixes two cases where elf_link_add_object_symbols returns an
error, setting the catch-all bfd_error_bad_value without explaining
the error.  The second one is an internal error that can only be
caused by a target elf_add_symbol_hook, so make that one abort.  The
first one is my PR24339 fix.  PR24339 is another of those fuzzing bugs
and the fix I made catches the problem when loading symbols, rather
than when symbols are used in relocs.  While ld is correct to reject
the object file as not complying with the ELF standard, let's be a
little more forgiving for dynamic objects.

PR 24857
PR 24339
* elflink.c (elf_link_add_object_symbols): Report an informative
error on finding local symbols with index equal or greater than
symbol table sh_info.  Correct comment.  Allow such symbols in
dynamic objects.  Abort on NULL section for symbol.
bfd/ChangeLog
bfd/elflink.c