diff options
author | Alan Modra <amodra@gmail.com> | 2022-06-03 13:12:01 +0930 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2022-06-03 13:12:01 +0930 |
commit | 6b8b24bb688e53e251bbe2f3f9ddc44bca122bde (patch) | |
tree | 4378d4a258584e6a399dadab81fffec0769fa81b /bfd | |
parent | 679dc6e71647adf2719c411de5006358d27978b7 (diff) | |
download | fsf-binutils-gdb-6b8b24bb688e53e251bbe2f3f9ddc44bca122bde.zip fsf-binutils-gdb-6b8b24bb688e53e251bbe2f3f9ddc44bca122bde.tar.gz fsf-binutils-gdb-6b8b24bb688e53e251bbe2f3f9ddc44bca122bde.tar.bz2 |
Re: asan: mips_gprel_reloc segfault
Similarly for the elf mips support.
* elf32-mips.c (mips_elf_final_gp): Don't segfault on symbols
in any of the bfd_is_const_section sections.
* elf64-mips.c (mips_elf64_final_gp): Likewise.
* elfn32-mips.c (mips_elf_final_gp): Likewise.
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/elf32-mips.c | 3 | ||||
-rw-r--r-- | bfd/elf64-mips.c | 3 | ||||
-rw-r--r-- | bfd/elfn32-mips.c | 3 |
3 files changed, 3 insertions, 6 deletions
diff --git a/bfd/elf32-mips.c b/bfd/elf32-mips.c index a4c88c6..8989011 100644 --- a/bfd/elf32-mips.c +++ b/bfd/elf32-mips.c @@ -1720,8 +1720,7 @@ static bfd_reloc_status_type mips_elf_final_gp (bfd *output_bfd, asymbol *symbol, bool relocatable, char **error_message, bfd_vma *pgp) { - if (bfd_is_und_section (symbol->section) - && ! relocatable) + if (output_bfd == NULL) { *pgp = 0; return bfd_reloc_undefined; diff --git a/bfd/elf64-mips.c b/bfd/elf64-mips.c index 6fa9d44..7f6f7ef 100644 --- a/bfd/elf64-mips.c +++ b/bfd/elf64-mips.c @@ -3427,8 +3427,7 @@ static bfd_reloc_status_type mips_elf64_final_gp (bfd *output_bfd, asymbol *symbol, bool relocatable, char **error_message, bfd_vma *pgp) { - if (bfd_is_und_section (symbol->section) - && ! relocatable) + if (output_bfd == NULL) { *pgp = 0; return bfd_reloc_undefined; diff --git a/bfd/elfn32-mips.c b/bfd/elfn32-mips.c index 1ae51a4..07b753f 100644 --- a/bfd/elfn32-mips.c +++ b/bfd/elfn32-mips.c @@ -3254,8 +3254,7 @@ static bfd_reloc_status_type mips_elf_final_gp (bfd *output_bfd, asymbol *symbol, bool relocatable, char **error_message, bfd_vma *pgp) { - if (bfd_is_und_section (symbol->section) - && ! relocatable) + if (output_bfd == NULL) { *pgp = 0; return bfd_reloc_undefined; |