mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-21 18:39:34 +08:00
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.
This commit is contained in:
@ -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>
|
2022-12-05 Nick Clifton <nickc@redhat.com>
|
||||||
|
|
||||||
PR 29848
|
PR 29848
|
||||||
|
@ -6008,6 +6008,9 @@ cmse_scan (bfd *input_bfd, struct elf32_arm_link_hash_table *htab,
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
cmse_hash = elf32_arm_hash_entry (sym_hashes[i - ext_start]);
|
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;
|
sym_name = (char *) cmse_hash->root.root.root.string;
|
||||||
if (!startswith (sym_name, CMSE_PREFIX))
|
if (!startswith (sym_name, CMSE_PREFIX))
|
||||||
continue;
|
continue;
|
||||||
@ -15987,6 +15990,8 @@ elf32_arm_gc_mark_extra_sections (struct bfd_link_info *info,
|
|||||||
for (i = ext_start; i < sym_count; i++)
|
for (i = ext_start; i < sym_count; i++)
|
||||||
{
|
{
|
||||||
cmse_hash = elf32_arm_hash_entry (sym_hashes[i - ext_start]);
|
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
|
/* Assume it is a special symbol. If not, cmse_scan will
|
||||||
warn about it and user can do something about it. */
|
warn about it and user can do something about it. */
|
||||||
|
Reference in New Issue
Block a user