From cb0f1baf44a4de4506283502df68cad3b7780e1d Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 9 Oct 2023 16:53:27 +0100 Subject: [PATCH] Fix: Null pointer dereference in elf32-i386.c PR 30950 * elf32-i386.c (elf_i386_convert_load_reloc): Check for elf_x86_hash_table returning a NULL pointer. --- bfd/ChangeLog | 4 ++++ bfd/elf32-i386.c | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index da287723935..2731d85db5c 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,5 +1,9 @@ 2023-10-09 Nick Clifton + PR 30950 + * elf32-i386.c (elf_i386_convert_load_reloc): Check for + elf_x86_hash_table returning a NULL pointer. + PR 30949 * elflink.c (elf_gc_mark_debug_section): Check for bfd_section_from_elf_index returning a NULL pointer. diff --git a/bfd/elf32-i386.c b/bfd/elf32-i386.c index 7e6823b40f4..abfba406a81 100644 --- a/bfd/elf32-i386.c +++ b/bfd/elf32-i386.c @@ -1241,6 +1241,12 @@ elf_i386_convert_load_reloc (bfd *abfd, Elf_Internal_Shdr *symtab_hdr, return true; htab = elf_x86_hash_table (link_info, I386_ELF_DATA); + if (htab == NULL || ! is_x86_elf (abfd, htab)) + { + bfd_set_error (bfd_error_wrong_format); + return false; + } + is_pic = bfd_link_pic (link_info); r_type = *r_type_p; -- 2.30.2