aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2022-06-03 13:12:01 +0930
committerAlan Modra <amodra@gmail.com>2022-06-03 13:12:01 +0930
commit6b8b24bb688e53e251bbe2f3f9ddc44bca122bde (patch)
tree4378d4a258584e6a399dadab81fffec0769fa81b /bfd
parent679dc6e71647adf2719c411de5006358d27978b7 (diff)
downloadgdb-6b8b24bb688e53e251bbe2f3f9ddc44bca122bde.zip
gdb-6b8b24bb688e53e251bbe2f3f9ddc44bca122bde.tar.gz
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.c3
-rw-r--r--bfd/elf64-mips.c3
-rw-r--r--bfd/elfn32-mips.c3
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;