ARM cmse_scan segfault
authorAlan Modra <amodra@gmail.com>
Wed, 20 Nov 2019 22:27:00 +0000 (08:57 +1030)
committerAlan Modra <amodra@gmail.com>
Thu, 21 Nov 2019 10:38:30 +0000 (21:08 +1030)
commit73d5efd7e13ebd8fe87278224bc2ae777af3de52
tree604140a0d4b12517d74f7c9463ff1c34ed1ede52
parent65d1cd5f9cbcbb2df0b187cb7623949c1668728f
ARM cmse_scan segfault

This code in elf_link_add_object_symbols:

      ret = elf_add_dt_needed_tag (abfd, info, soname, add_needed);
      if (ret < 0)
goto error_return;

      /* If we have already included this dynamic object in the
 link, just ignore it.  There is no reason to include a
 particular dynamic object more than once.  */
      if (ret > 0)
return TRUE;

prevents a shared library from being loaded twice by ensuring that any
library soname doesn't match the soname of one already loaded.  This
happens before sym_hashes are allocated, which leaves sym_hashes NULL.

cmse_scan looks at library symbols, and when attempting to look up a
global symbol will segfault if sym_hashes is zero.

* elf32-arm.c (elf32_arm_size_stubs): Exclude dynamic library
BFDs that have not been loaded.
bfd/ChangeLog
bfd/elf32-arm.c
This page took 0.024117 seconds and 4 git commands to generate.