summaryrefslogtreecommitdiff
path: root/system/binutils/CVE-2017-7614.patch
diff options
context:
space:
mode:
Diffstat (limited to 'system/binutils/CVE-2017-7614.patch')
-rw-r--r--system/binutils/CVE-2017-7614.patch84
1 files changed, 0 insertions, 84 deletions
diff --git a/system/binutils/CVE-2017-7614.patch b/system/binutils/CVE-2017-7614.patch
deleted file mode 100644
index 5f3b550f2..000000000
--- a/system/binutils/CVE-2017-7614.patch
+++ /dev/null
@@ -1,84 +0,0 @@
-From ad32986fdf9da1c8748e47b8b45100398223dba8 Mon Sep 17 00:00:00 2001
-From: Nick Clifton <nickc@redhat.com>
-Date: Tue, 4 Apr 2017 11:23:36 +0100
-Subject: [PATCH] Fix null pointer dereferences when using a link built with
- clang.
-
- PR binutils/21342
- * elflink.c (_bfd_elf_define_linkage_sym): Prevent null pointer
- dereference.
- (bfd_elf_final_link): Only initialize the extended symbol index
- section if there are extended symbol tables to list.
----
- bfd/elflink.c | 35 +++++++++++++++++++++--------------
- 2 files changed, 29 insertions(+), 14 deletions(-)
-
-diff --git a/bfd/elflink.c b/bfd/elflink.c
-index 776357f..9bf75c8 100644
---- a/bfd/elflink.c
-+++ b/bfd/elflink.c
-@@ -119,15 +119,18 @@ _bfd_elf_define_linkage_sym (bfd *abfd,
- defined in shared libraries can't be overridden, because we
- lose the link to the bfd which is via the symbol section. */
- h->root.type = bfd_link_hash_new;
-+ bh = &h->root;
- }
-+ else
-+ bh = NULL;
-
-- bh = &h->root;
- bed = get_elf_backend_data (abfd);
- if (!_bfd_generic_link_add_one_symbol (info, abfd, name, BSF_GLOBAL,
- sec, 0, NULL, FALSE, bed->collect,
- &bh))
- return NULL;
- h = (struct elf_link_hash_entry *) bh;
-+ BFD_ASSERT (h != NULL);
- h->def_regular = 1;
- h->non_elf = 0;
- h->root.linker_def = 1;
-@@ -12038,24 +12041,28 @@ bfd_elf_final_link (bfd *abfd, struct bfd_link_info *info)
- {
- /* Finish up and write out the symbol string table (.strtab)
- section. */
-- Elf_Internal_Shdr *symstrtab_hdr;
-+ Elf_Internal_Shdr *symstrtab_hdr = NULL;
- file_ptr off = symtab_hdr->sh_offset + symtab_hdr->sh_size;
-
-- symtab_shndx_hdr = & elf_symtab_shndx_list (abfd)->hdr;
-- if (symtab_shndx_hdr != NULL && symtab_shndx_hdr->sh_name != 0)
-+ if (elf_symtab_shndx_list (abfd))
- {
-- symtab_shndx_hdr->sh_type = SHT_SYMTAB_SHNDX;
-- symtab_shndx_hdr->sh_entsize = sizeof (Elf_External_Sym_Shndx);
-- symtab_shndx_hdr->sh_addralign = sizeof (Elf_External_Sym_Shndx);
-- amt = bfd_get_symcount (abfd) * sizeof (Elf_External_Sym_Shndx);
-- symtab_shndx_hdr->sh_size = amt;
-+ symtab_shndx_hdr = & elf_symtab_shndx_list (abfd)->hdr;
-
-- off = _bfd_elf_assign_file_position_for_section (symtab_shndx_hdr,
-- off, TRUE);
-+ if (symtab_shndx_hdr != NULL && symtab_shndx_hdr->sh_name != 0)
-+ {
-+ symtab_shndx_hdr->sh_type = SHT_SYMTAB_SHNDX;
-+ symtab_shndx_hdr->sh_entsize = sizeof (Elf_External_Sym_Shndx);
-+ symtab_shndx_hdr->sh_addralign = sizeof (Elf_External_Sym_Shndx);
-+ amt = bfd_get_symcount (abfd) * sizeof (Elf_External_Sym_Shndx);
-+ symtab_shndx_hdr->sh_size = amt;
-
-- if (bfd_seek (abfd, symtab_shndx_hdr->sh_offset, SEEK_SET) != 0
-- || (bfd_bwrite (flinfo.symshndxbuf, amt, abfd) != amt))
-- return FALSE;
-+ off = _bfd_elf_assign_file_position_for_section (symtab_shndx_hdr,
-+ off, TRUE);
-+
-+ if (bfd_seek (abfd, symtab_shndx_hdr->sh_offset, SEEK_SET) != 0
-+ || (bfd_bwrite (flinfo.symshndxbuf, amt, abfd) != amt))
-+ return FALSE;
-+ }
- }
-
- symstrtab_hdr = &elf_tdata (abfd)->strtab_hdr;
---
-2.9.3
-