diff options
author | Nick Clifton <nickc@redhat.com> | 2022-12-06 11:24:12 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2022-12-06 11:24:12 +0000 |
commit | 83f18e5ebe627163f744215d3760a8eaacee6ec1 (patch) | |
tree | e1be74d568ea7da55b75e916990b0dad10ecba69 | |
parent | 8db40179f0e61c2145a4470afa47fb1945a8d9c8 (diff) | |
download | gdb-83f18e5ebe627163f744215d3760a8eaacee6ec1.zip gdb-83f18e5ebe627163f744215d3760a8eaacee6ec1.tar.gz gdb-83f18e5ebe627163f744215d3760a8eaacee6ec1.tar.bz2 |
Fix a dereference of NULL when scanning the symbol hashes array in the ARM linker.
PR 29852
* elf32-arm.c (cmse_scan): Check for NULL entries in the
sym_hashes array.
(elf32_arm_gc_mark_extra_sections): Likewise.
-rw-r--r-- | bfd/ChangeLog | 7 | ||||
-rw-r--r-- | bfd/elf32-arm.c | 5 |
2 files changed, 12 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index ee8eaf0..da2a30a 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,10 @@ +2022-12-06 Nick Clifton <nickc@redhat.com> + + PR 29852 + * elf32-arm.c (cmse_scan): Check for NULL entries in the + sym_hashes array. + (elf32_arm_gc_mark_extra_sections): Likewise. + 2022-12-05 Nick Clifton <nickc@redhat.com> PR 29848 diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c index c7d73171..86cc961 100644 --- a/bfd/elf32-arm.c +++ b/bfd/elf32-arm.c @@ -6008,6 +6008,9 @@ cmse_scan (bfd *input_bfd, struct elf32_arm_link_hash_table *htab, else { cmse_hash = elf32_arm_hash_entry (sym_hashes[i - ext_start]); + if (cmse_hash == NULL) + continue; + sym_name = (char *) cmse_hash->root.root.root.string; if (!startswith (sym_name, CMSE_PREFIX)) continue; @@ -15987,6 +15990,8 @@ elf32_arm_gc_mark_extra_sections (struct bfd_link_info *info, for (i = ext_start; i < sym_count; i++) { cmse_hash = elf32_arm_hash_entry (sym_hashes[i - ext_start]); + if (cmse_hash == NULL) + continue; /* Assume it is a special symbol. If not, cmse_scan will warn about it and user can do something about it. */ |